![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 19.12.2009
Сообщений: 4
|
![]()
Обработка текста: задана фраза – последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами – не менее одного пробела, за последним словом – точка. Напечатать все слова, отличные от последнего слова, предварительно преобразовав каждое из них по следующему правилу: удалить из слова все предыдущие вхождения последней буквы. Программы должна читать текст из файла «input.txt» и выводить последовательность в файл «output.txt».
ПОДСКАЖИТЕ, КАК СДЕЛАТЬ ТАК, ЧТОБЫ ПРОГРАММА ПРЕОБРАЗОВЫВАЛА И ВСТАВЛЯЛА ВСЕ СЛОВА, КРОМЕ ПОСЛЕДНЕГО? И КАК ПРОВЕРИТЬ УСЛОВИЕ, ЧТОБЫ СТРОКА СОДЕРЖАЛА ОТ 2 ДО 30 СЛОВ И КАЖДОЕ СЛОВО ОТ 2 ДО 10 БУКВ!! ПОЖАЛУЙСТА, ПОМОГИТЕ!!!!!! # include <stdio.h> # include <conio.h> # include <iostream.h> # include <string.h> void Delete(char *str) { int len=strlen(str),i,j; char ch=str[len-1]; for(i=0;i<len-1;i++) { if(str[i]==ch) { for(j=i;j<len;j++) str[j]=str[j+1]; len--; i--; } } } main (void) { clrscr(); int i,j; char ch[31],*git,slovo[100]; FILE *file, *file_o; char *inp="input.txt", *outp="output.txt"; file=fopen(inp,"r"); file_o=fopen(outp,"w"); if(file!=0) { fgets(ch,330,file); git=strtok(ch," "); while(git!=NULL) { Delete(git); fputs(git,file_o); fputs(" ",file_o); git=strtok(NULL," ");} } else { cout<<"file not found"<<endl; } fclose(file); fclose(file_o); } Последний раз редактировалось nikalerochka; 21.12.2009 в 00:59. |
![]() |
![]() |
![]() |
#2 |
Регистрация: 19.12.2009
Сообщений: 4
|
![]()
или может у кого-нибудь найдется альтернативный вариант программы?
|
![]() |
![]() |