Строки!!

Jungler99

С клавиатуры вводится строка, состоящая из слов, отделенных друг от друга пробелами (пробелов может быть несколько). Напечатать только те слова, в которых первая буква встречается еще раз. Помогите сделать!!! Вообще не врубаюсь!!((
1 ответ

Jungler99

Jungler99, вот Вам функция, которая выполняет нужные Вам действия. Это без учета регистра букв
function Func(s:string):string;
const
  dividers=[' ',',','.',';',':','-','=','+'];{äîïèñГ*ГІГј Г*ГіГ¦Г*ûå}
var
  temp,res:string;
  i:integer;
begin
  temp:='';
  {ïðîáåãГ*ГҐГ¬ ГўГ±Гѕ ñòðîêó ïîñèìâîëüГ*Г®}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
      if temp<>'' then
      begin
        if pos(temp[1],copy(temp,2,length(temp)-1))<>0 then
          res:=res+temp+' ';
        temp:='';
      end;
  end;
  Result:=res
end;
а это с учетом
function Func(s:string):string;
const
  dividers=[' ',',','.',';',':','-','=','+'];{äîïèñГ*ГІГј Г*ГіГ¦Г*ûå}
var
  temp,res:string;
  i:integer;
begin
  temp:='';
  {ïðîáåãГ*ГҐГ¬ ГўГ±Гѕ ñòðîêó ïîñèìâîëüГ*Г®}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
      if temp<>'' then
      begin
        if (pos(LowCase(temp[1]),copy(temp,2,length(temp)-1))<>0) or (pos(UpCase(temp[1]),copy(temp,2,length(temp)-1))<>0) then
          res:=res+temp+' ';
        temp:='';
      end;
  end;
  Result:=res
end;
Использовать так:
...
ShowMessage(Func('в этом месте должна быть строка'))
...