|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.08.2010, 21:22 | #1 |
Регистрация: 20.06.2010
Сообщений: 7
|
проблема с программой, ошибку найти не могу
Суть:программа каждую строку "переваривает" таким образом, что двойные пробелы или знаки табуляции заменяются на одни. к тому же пустые строки удаляет, то есть не печатает)
#include <stdio.h> #define MAXLINE 1000 int getline(char line[], int lim); /*получает строку*/ void probel(char to[], char from[]); /*очищает от двойных пробелов и знаков табуляции*/ main() { int len; char line[MAXLINE]; char longest[MAXLINE]; while((len=getline(line, MAXLINE))>0) if (len>3) { отсеевает пустые строки probel(longest,line); printf("%s",longest); } return 0; } int getline(char s[],int lim) { int c,i; for(i=0;i<lim-1&&(c=getchar())!=EOF&&c!='\n';++ i) s[i]=c; if(c=='\n') { s[i]=c; ++i; } s[i]='\0'; return i; } void probel(char to[],char from[]) { int n,i,c; n=0; i=0; while((c=from[i])!='\0') { if ((c=='\t'||c==' ')&&(n<1)) { to[i]=c; ++i; ++n; } else if (c!='\t'||c!=' ') { to[i]=c; ++i; n=0; } } Заранее спасибо) |
06.08.2010, 23:48 | #2 |
Старожил
Регистрация: 26.04.2008
Сообщений: 2,645
|
Вводить можно стандартными функциями scanf, (f)gets и т.п. в цикле или просто со стандартной getline. По коду - ошибка в условиях
Код:
|
07.08.2010, 11:45 | #3 |
Регистрация: 20.06.2010
Сообщений: 7
|
Огромное спасибо, разобрался)Тему можно закрыть))
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблема. не могу найти ошибку. | delphinewerklin | Помощь студентам | 0 | 21.01.2010 17:07 |
Не могу найти ошибку(С++) | Yura_n | Помощь студентам | 8 | 20.01.2009 12:36 |
Не могу найти ошибку. | Picaso18 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.01.2009 17:05 |