В символьной строке оставить только те слова, в которых есть повторяющиеся буквы - C (СИ)
Формулировка задачи:
Здравствуйте!
Не могли бы вы помочь мне в решении задачи?
Я уже третий день работаю,но не получается,за каникулы почти все забыл
Уже все обгуглил...
Задание:
В символьной строке оставить только те слова, в которых есть повторяющиеся буквы.
(Не использовать дефолтные функции работы со строками (например strstr, strlen). )
Вот код который наработал за сегодня:
Там правда много лишнего,я там уже запутался
Спасибо!
#include <stdio.h> #include <string.h> #include <conio.h> #define VOWELS "AaEeIiOoUu" #define DELIM " " int main(void) { int i=0,y=0,z=0,t=0,q=0,N=0,p=0; char buf[BUFSIZ], * ptr; char fan[10], * finish; printf("Enter_string: "); while ( fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) { for (i=0;i<buf[i]!='\0';i++) { if (buf[i]!=' ') { y++; fan[z]=buf[i]; z++; N=i; } } } //printf("%c",fan[z]); for (z=0;z<9;z++) { printf("%c\n",fan[z]); } printf("\n\n%d\n\n\n",y); for (t=0;t<N;t++) { for (q=0;q<N;q++) { if (fan[t]==fan[q]){p++; if (p>1){ printf("%c",fan[t]); } } } } printf("\n\n... Press any key ..."); getch(); return 0; }
Решение задачи: «В символьной строке оставить только те слова, в которых есть повторяющиеся буквы»
textual
Листинг программы
#include <stdio.h> char * mystrchr(const char * s, const char c) { return ( *s == '\0' ) ? NULL : ( *s == c ) ? (char*)s : mystrchr(s + 1, c); } int have_dbl(const char * s) { return ( *s == '\0' ) ? 0 : mystrchr(s + 1, *s) ? 1 : have_dbl(s + 1); } #define DELIM " \t\n" int main(void) { char buf[BUFSIZ]; int len, pos, inword; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) { printf("Result: "); for ( len = 0; buf[len]; ++len ) ; for ( pos = 0; pos < len; ++pos ) if ( mystrchr(DELIM, buf[pos]) ) buf[pos] = '\0'; for ( inword = 0, pos = 0; pos < len; ++pos ) { if ( buf[pos] == '\0' ) inword = 0; else if ( ! inword ) { inword = 1; if ( have_dbl(buf + pos) ) printf("%s ", buf + pos); } } printf("\n"); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д