Подсчитать количество вхождений подстроки в строке. И строка, и подстрока вводятся пользователем
Если строку и подстроку прописывать в команде, то все работает, если строку и подстроку вводит пользователь то ничего не работает(((((9
#include <stdio.h>
#include <string.h>
int main()
{
printf("Enter a string: ");
char str1[100];
char str2[100];
fgets(str1, sizeof(str1), stdin);
fflush(stdin);
printf("Enter a string: ");
fgets(str2, sizeof(str2), stdin);
char *sp=str1;
int i=0;
while((sp=strstr(sp,str2))!=NULL)
{
i++;
sp+=strlen(str2);
}
printf("%d",i);
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Дело в том, что fgets читает строку вместе с завершающим символом \n. Вот у вас ничего и не работает...
Допишите
if (str1[strlen(str1)-1] == '\n') str1[strlen(str1)-1] = 0;
if (str2[strlen(str2)-1] == '\n') str2[strlen(str2)-1] = 0;
после чтения строк и до начала поиска...