В введенной строке подсчитать количество слов, что одинаково начинаются и заканчиваются (Примечание: Слова в текстовой строке отделены пробелами или группами пробелов.
program z_string; uses crt; const Letters = ['a'..'z','A'..'Z','а'..'я','А'..'Я']; var StringS, Symbol :string; CounterI, Number:byte; begin
clrscr; writeln('Введите строку текста'); readln(StringS); Number := 0; Symbol := ''; for CounterI := 1 to length(StringS) do begin if (StringS[CounterI] in Letters) and (Symbol = '') then Symbol := StringS[CounterI]; if (not(StringS[CounterI] in Letters)) and (CounterI <> 1) then begin if StringS[Counteri - 1] = Symbol then inc(Number); Symbol := ''; end; if (CounterI = length(StringS)) and (StringS[CounterI] = Symbol) then inc(Number); end; writeln; writeln('Количество слов начинающихся и заканчивающихся одной и той же буквой ', Number); readln; end.
Answers & Comments
program z_string;
uses crt;
const Letters = ['a'..'z','A'..'Z','а'..'я','А'..'Я'];
var StringS, Symbol :string;
CounterI, Number:byte;
begin
clrscr;
writeln('Введите строку текста');
readln(StringS);
Number := 0;
Symbol := '';
for CounterI := 1 to length(StringS) do
begin
if (StringS[CounterI] in Letters) and (Symbol = '') then
Symbol := StringS[CounterI];
if (not(StringS[CounterI] in Letters)) and (CounterI <> 1) then
begin
if StringS[Counteri - 1] = Symbol then
inc(Number);
Symbol := '';
end;
if (CounterI = length(StringS)) and (StringS[CounterI] = Symbol) then
inc(Number);
end;
writeln;
writeln('Количество слов начинающихся и заканчивающихся одной и той же буквой ', Number);
readln;
end.
ахах тоже составляли такую,прикольная;)
var s, word: string; c: Char; k: Integer;
begin
readLn(s);
k := 0;
i := 1;
while (i <> length(s)) do begin
word := ''; while (i <> length(s)) and (s[i] <> ' ') do begin
word := word + s[i];
inc(i);
end;
if word[1] = word[length(word)] then i
nc(k);
nc(i);
end;
writeLn(k);
end.