Другие языки программирования и технологии
как подсчитать количество слов в строке разделённым больше чем одним пробелом(Delphi)
всем привет!поставлена такая вот задачка, надо найти слова, которые разделены только пробелами, но количество пробелов не оговарено заранее, тоесть как 1 пробелом так и большем количеством...как сделать через один пробел, я написал, а вот с многими я не понимаю как, кто знает помогите....вот как я на один пробел сделал, всё работает:[code] procedure TForm1.BitBtn5Click(Sender: TObject); //ñêîëüêî ñëîâvar i,j,a:integer;begina:=1; for i:=0 to tekst.lines.count do begin //ñòðîêè for j:= 1 to length(tekst.Lines) do begin //ñèìâîëû if tekst.lines[j] = ' ' then begin a:=a+1; end; end; end;label4.Caption:=IntToStr(a);end;[/code]заранее спасибо)
Доброго времени суток.
Можно воспользоваться модулем StrUtils из библиотекой RxLib, в который входит функция WordCount. А вот и ее реализация.
function WordCount(const S: string; const WordDelims: TCharSet): Integer;
var
SLen, I: Cardinal;
begin
Result := 0;
I := 1;
SLen := Length(S);
while I <= SLen do begin
while (I <= SLen) and (S[ I ] in WordDelims) do Inc(I);
if I <= SLen then Inc(Result);
while (I <= SLen) and not(S[ I ] in WordDelims) do Inc(I);
end;
end;
Здесь тип TCharSet объявлен так
type
{$IFNDEF RX_D4}
TSysCharSet = set of Char;
{$ENDIF}
TCharSet = TSysCharSet;
Параметром WordDelims задается множество символов разделителей.
Удачи!
Можно воспользоваться модулем StrUtils из библиотекой RxLib, в который входит функция WordCount. А вот и ее реализация.
function WordCount(const S: string; const WordDelims: TCharSet): Integer;
var
SLen, I: Cardinal;
begin
Result := 0;
I := 1;
SLen := Length(S);
while I <= SLen do begin
while (I <= SLen) and (S[ I ] in WordDelims) do Inc(I);
if I <= SLen then Inc(Result);
while (I <= SLen) and not(S[ I ] in WordDelims) do Inc(I);
end;
end;
Здесь тип TCharSet объявлен так
type
{$IFNDEF RX_D4}
TSysCharSet = set of Char;
{$ENDIF}
TCharSet = TSysCharSet;
Параметром WordDelims задается множество символов разделителей.
Удачи!
алгоритм прост.
Ты считаешь пробелы, а надо смотреть текущий символ (пробел) и следующий за ним (НЕ пробел) .
Да! учти что в начале сроки могут быть, а могут и не быть пробелы. Эту ситуацию обрабатываем по отдельно.
Ты считаешь пробелы, а надо смотреть текущий символ (пробел) и следующий за ним (НЕ пробел) .
Да! учти что в начале сроки могут быть, а могут и не быть пробелы. Эту ситуацию обрабатываем по отдельно.
Самое верное (мой способ) — это сделать процедуру, которая приводит строку в божеский вид (удаляет пробелы в начале, в конце, заменяет несколько пробелов на один) , а потом привести в исполнение твою подпрограмму.
Первые две задачи простые.
Третья.
Просто ищешь два пробела и заменяешь на один.
flag:=false;
repeat
i:=pos(s,' '); //два пробела
if i>0 then delete(s,i,1)
else flag:=true;
until flag;
Первые две задачи простые.
Третья.
Просто ищешь два пробела и заменяешь на один.
flag:=false;
repeat
i:=pos(s,' '); //два пробела
if i>0 then delete(s,i,1)
else flag:=true;
until flag;
Похожие вопросы
- Как отдельно подсчитать количество русских букв и английских букв в строке массива???
- Как разделить слова в строке, чтобы их потом сравнивать друг с другом и сортировать? (Паскаль)
- срочно помогите пожалуйста доделать прогу в delphi!!! дана символьная матрица. подсчитать количество различных элементов
- дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке
- Помогите плизззз! задача в паскале! Дана строка символов. Группы символов, разделенные одним или несколькими пробелами
- Дана матрица символов. Подсчитать количество строк, в которых букв больше, чем цифр.
- подскажите через кудой решать эту задачку с++2)Дан текст. Слова в тексте разделены пробелами. Вычеркнуть из текста вс
- С++. Элементы массива задаются с клавиатуры. Подсчитать количество элементов массива, являющихся трехзначным числом.
- как в паскале подсчитать количество символов в словах ?
- C# Парсинг слов из строки без регистра