Алгоритмы на С++
Решение задачи 8 главы 2
В строке текста записаны слова, разделенные пробелами в произвольном количестве. Сжатие текста состоит в том, что между словами оставляется по одному пробелу, а после последнего слова пробелы удаляются (пробелы перед первым словом сохраняются). Сжатый текст записать в другой файл. Если строка содержит только пробелы, то все они сохраняются.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
void itmathrepetitor_ru() { char s[100],w[100]; cout<<"input text: "; w[0]='\0'; // www.itmathrepetitor.ru int i=0,j=0; int state=0; gets(s); for (int i=0; i<strlen(s); i++) { if (s[i]==' ' && !state) { w[j]=s[i]; j++; } else if (s[i]!=' ' && state<=1) { state=1; // www.itmathrepetitor.ru w[j]=s[i]; j++; } else if (s[i]==' ' && state==1) { state=2; } else if (s[i]!=' ' && state==2) { state=1; w[j]=' '; // www.itmathrepetitor.ru j++; w[j]=s[i]; j++; } } w[j]='\0'; puts(w); } |