СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова
Дана последовательность символов, состоящая из слов. Удалить слова, которые содержат все повторяющиеся буквы первого слова, с сохранением структуры пробелов. Вывести на экран отредактированный текст или сообщение «Нет», если удаление слов не было.
Я вот тут набросал кое-что, но в конце надо удалять не символы, а слова, не знаю как, помогите кто знает, очень нужно !!! Заранее благодарен !!! #include <stdio.h> main(){ char ch, str1[50], str_full[225], sybmol[10]; int k,i=0,j; /*Вводим строку, т.е пока не появится переход на новую '\n')*/ while((ch=getchar( )) != '\n') { str1[i] = ch; i++; } /* заносим в массив всю строку*/ str_full[255] = ch; putchar(ch); /*перебираем первое слово и если в нем есть одинаковые буквы создаем массив sybmol с этими буквами*/ for(k=0,k <= strlen(str)); k++; { while(k <= (strlen(str)-1)) { if (str[k] == str[k+1]){ sybmol[10] = str[k]; } } } /* перебираем всю строку и печатаем только те символы, которые не равны повторяющимся символам*/ for(i = 0;i <= strlen(str_full);i++) { int j = 0; while(j <= (strlen(sybmol))) { if (str_full[i] != sybmol[j]) printf(str_full[i]); j++; } } } не клонируй посты пожалуйста. модератор |
В программе очень много ошибок:
Код:
#include <stdio.h> 1)Создаем словарь из букв. 2)Берем второе слово из строки, проверяем, есть ли в нем буквы из словаря. Если буквы есть, слово пропускаем. Букв нет - добавляем слово в выходную строку. 3)Так далее, пока слова в строке не кончаться. |
Начинаю только изучать СИ. Не могли бы вы написать свой вариант этой программы, чтобы в дальнейшем синтаксические и алгоритмические ошибки не случались. Буду очень благодарен!!!
|
К сожалению, я довольно занят :-(.
Практикуйтесь, компилируйте. Пишите программу уступом, как у меня. Задавайте вопросы. Чтобы внешний вид программы не испортился при публикации на форуме, её нужно заключить в BB код ]CODE[ ]/CODE[ Только скобки нужно развернуть. |
#include <stdio.h>
#include <conio.h> main(){ char ch, str[250],str1[25]; int k,i,j,l,n,imin; /*Вводим строку строку, до тех пора пока не появится конец строки*/ i=1; while((ch=getchar( )) != '\n') { str[i]= ch; i++; } k=i; /*Выделяем первое слово*/ for(i=1; i<k-1; i++) { if(str[i]==' ') break; str1[i-1]=str[i]; } l=i-1; //Длина первого слова /*Перебираем символы в слове*/ getch(); } Словарь из букв я получаю, а как перебирать слова и проверять есть ли в них эти буквы? |
Часовой пояс GMT +4, время: 09:54. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.