Удалить в строке все лишние пробелы.
Лишними считаются пробелы, следующие непосредственно за пробелами. Т.е. между словами всегда должен находиться один пробел.
Посимвольно перебирать строку, пока не будет достигнут конец строки. Если очередной символ является пробелом и после него также находится пробел, то скопировать строку до текущего символа и добавить к ней остаток строки, пропустив один символ.
var s: string; i: byte; begin write('String: '); readln(s); i := 1; repeat if copy(s,i,2)=' ' then s := copy(s,1,i) + copy(s,i+2,length(s)) else i := i + 1 until (i > length(s)); writeln('String: ', s); readln end.
Комментарии
Вот еще 1 вариант...
do begin if s[i]' ' then i:=i+1;{если не пробел переходим к следующему символу} if s[i]=' ' then i:=i+1; {если пробел то осталяем первый пробели переходим к следующему симолу} while s[i]=' ' do {удаляем симол до тех пор пока он пробел} delete (s,i,1); if ((s[i]='.')or(s[i]=',')or(s[i]='?')or(s[i]='!')or(s[i]='-')or(s[i]=':'))and(s[i-1]=' ') then begin delete (s,i-1,1); end; {если этот символ знак пунктуации то удаляем пробел перед ним} dl:=length(s);{присваиваем измененную длинну строки переменной} end; writeln (s); end.
Help
Как ее приспособить для файла, а не для ввода с клавиатуры, т.е. читает свои входные данные из текстового файла и перезаписывает на правильный вариант. Помогите плиз кто в курсе.
Если в файле содержится не
Если в файле содержится не более 255 символов, то можно сделать так:
эта программа плохая!
она работает если в тексте не больше 2 пробелов а если их больше 2 тогда вот
а это еще хуже!!! ЛУЧШЕ
а это еще хуже!!!
ЛУЧШЕ БЫ: