Как найти все позиции подстрок в строке?
Как найти все позиции подстрок в str1 равные str2?
Вот что смог сделать:
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[102], str2[102];
int ans, n, m;
fgets(str1, 101, stdin);
n = strlen(str1) - 1;
str1[n] = '\0';
fgets(str2, 101, stdin);
m = strlen(str2) - 1;
str2[m] = '\0';
char *istr;
istr = strstr(str1, str2);
if (istr == NULL)
printf ("Строка не найдена\n");
else
printf ("Искомая строка начинается с символа %d\n", istr - str1 + 1);
return 0;
}
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Наверное, вам надо так? Просто в цикле ищем все вхождения.
for (istr = strstr(str1, str2); istr; istr = strstr(istr + 1, str2))
{
printf("Искомая строка начинается с символа %d\n", istr - str1 + 1);
}