У меня есть проблема с моим кодом. Я исследовал тему в stackoverflow и нашел решения, но они, похоже, не работают. Вот мой код:Программа C для поиска числа вхождений подстроки в строке
#include <stdio.h>
#include <string.h>
int main() {
char sentence[1000];
char word[100];
int count=0;
fgets(sentence, 999, stdin);
fgets(word, 99, stdin);
int word_len=strlen(word);
char *p;
for(p=(char*)sentence; (p=strstr(p, word)); p+=word_len)
{
++count;
}
printf("%d", count);
return 0;
}
Но он не печатает 1 в любом случае, независимо от того, сколько раз слово встречается в предложении. Любая помощь?
удалить строку из 'слово'. – BLUEPIXY
Вы тратите 1 байт в каждом массиве char. Вы можете использовать весь размер массива в вызове fgets(): 'fgets (предложение, sizeof предложение, stdin);' – pmg
Хммм ... сколько раз «aba» существует в «abababa»? Два или три? – pmg