Поиск повторяющихся символов в строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

здравствуйте. помогите написать программу без указателей. дана строка длиной n.(размер строки пользователь не задает, ее устанавливает программист. максимальная длина 80 символов) Найти, сколько раз в ней встречается заданное сочетание символов. (программа также должна искать пробелы!) похожая тема уже была, но там нужно было сделать через указатели, а здесь не нужно. пытался сделать, но не получилось
#include<stdio.h>
int main(void)
{ char str[81], word[81];
int i,j,k=0;
printf("stroka:\n");
gets(str);
getchar();
printf("sochetanie:\n");
gets(word);
getchar();
for(i=0;str[i]!='\0';i++)
{for(j=0;word[j]!='\0';j++)
if(str[i]==word[j])
k++;}
printf("kol-vo = %d",k);
return 0;
}
подумал, кое-какие моменты исправил и программа работает, но не могу понять где ошибка. например, ввожу строку asdfghjkl asdfgh asd, сочетание as, получается 5. почему?
#include<stdio.h>
#include<string.h>
int main(void)
{ char str[81], word[81];
int i,j,k=0;
printf("stroka:\n");
getchar();
gets(str);
printf("Sochetanie:\n");
gets(word);
for(i=0;str[i]!='\0';i++)
{for(j=0;word[j]!='\0';j++)
if(str[i]==word[j])
{k++;
break;}}
printf("kol-vo = %d",k);
return 0;
}

Решение задачи: «Поиск повторяющихся символов в строке»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int meetings_count(const char * str, const char * substr) {
    return ( str = strstr(str, substr) ) ? 1 + meetings_count(str + 1, substr) : 0;
}
 
#define STR_SIZE 256
#define GET_STRING(str) ( scanf("%255[^\n]%*c", (str)) == 1 )
 
int main(void) {
    char string[STR_SIZE], substring[STR_SIZE];
    
    while ( printf("String: ") && GET_STRING(string) && printf("Substring: ") && GET_STRING(substring) )
        printf("%d meetings.\n", meetings_count(string, substring));
    
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.692 из 5
Похожие ответы