Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2013, 19:40   #1
Катя Миронова
Пользователь
 
Регистрация: 03.03.2013
Сообщений: 10
По умолчанию функция strstr в си

нужно через функции подсчитать количество вхождений символа "а" в строку
делала через функцию strstr
вот написала код, но не считает количество вхождений, а просто выводит общее количество символов
помогите найти ошибку, пожалуйста
Код:
#include <stdio.h>
#include <string.h>
#define N 60
 main () {
	char str[N];
	char *p;
	int o,n,c,i,s,k;
	printf("Enter surname,name,father's name \n\n");
	gets(str);
	n=strlen(str);
	printf("\n\n\ Dlina : %d", n);
for (i=0, k=0;i<n;i++){
p = strstr(str, "a");
if (p) {k=k+1;}
else break;}
printf("\n\n Kolychestvo a: %d",k);
	printf("\n\n Exit - 1");
    scanf("%i",o);
    //system("pause");
}
Катя Миронова вне форума Ответить с цитированием
Старый 27.05.2013, 20:25   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
#include <stdio.h>
#define N 60

main ()
{
    char str[N];
    char *p;
    int n,k=0,o;
    printf("Enter surname,name,father's name \n\n");
    gets(str);
    n=strlen(str);
    printf("\n\n\ Dlina : %d", n);
    p=strchr(str,'a');
    while (p!=NULL) {
        ++k;
        p=strchr(p+1,'a');
    }
    printf("\n\n Kolychestvo a: %d", k);
    printf("\n\n Exit - 1");
    scanf("%i",o);
    //system("pause");
}
ПС Не проверял.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.05.2013, 20:40   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
	char *s="hello world";
	char *c="l";
	int n=0;
	for(char* p=p=strstr(s,c);p;p=strstr(++p,c)) n++;
Подсчитает кол-во символа "l"
Дарю
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.05.2013, 20:49   #4
Катя Миронова
Пользователь
 
Регистрация: 03.03.2013
Сообщений: 10
По умолчанию

подскажите, а что такое здесь p?
Катя Миронова вне форума Ответить с цитированием
Старый 27.05.2013, 21:12   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

p - указатель на char.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.05.2013, 21:15   #6
Катя Миронова
Пользователь
 
Регистрация: 03.03.2013
Сообщений: 10
По умолчанию

спасибо, работает) подскажите еще, пожалуйста
я вот так ищу пробел, d-cтрока с пробелом
for(char*p=p=strstr(str,d);p;p=strs tr(++p,d))
а как вывести элемент, который находится после пробела?
Катя Миронова вне форума Ответить с цитированием
Старый 27.05.2013, 21:23   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,430
По умолчанию

Код:
for(char* p=p=strstr(s,d);p;p=strstr(++p,d)) printf("%c", *(p + 1));
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции ,которые выполняли тоже самое ,что strstr, strcpy , strlen Lokomoss Visual C++ 10 15.10.2012 21:55
Что лучше для поиска текста: string::find или strstr()? WebbMan Общие вопросы C/C++ 1 20.06.2011 23:00
Противоположная функция strstr() WebbMan Общие вопросы C/C++ 5 19.06.2011 15:14
Помогите пожалуйста в Си (strstr) Watt88 Фриланс 5 19.06.2008 21:19
помогите пожалуйста strstr!!! Watt88 Фриланс 5 18.06.2008 01:59