Поиск повторяющихся символов в строке - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д