Помощь - Поиск - Пользователи - Календарь
Полная версия: Строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
forMator
У меня снова возник вопрос!
Дан текст. Слова разделены пробелом. В третьем слове каждую букву заменить на +.
Как сделать чтобы именно в третьем слове заменялись буквы?
И как заменить каждую буквы?
Я могу заменить только определённую букву.
Подскажите пожалуйста!
klem4
Когда покажешь как ты разбиываешь строку на слова, можно будет беседовать дальше. Если кидаешь слова в массив, это одно, если разбиваешь "на ходу" другое ... Хотя принцип похож естественно, определяешь каждое третье слово (в массиве простым циклом через 2), если на ходу разворачиваешь, то счетчик делай, и провепку if count mod 3 = 0 then это очередное нужное слово
forMator
Вот так:
Код

Program project;
Var s:string;i:integer;
begin
writeln('stroka=');
readln(s);
i:=1;
while i<=length(s) do
if copy(s,i,1)='d' then begin
s[i]:='n';i:=i+1;
end else i:=i+1;
writeln('s=',s);
readln;
end.

Замена одной буквы во всей строке.
мисс_граффити
и при чем здесь такая замена?
тебе надо разбить строку на слова, то есть выделить отдельные слова. как ты ЭТО делаешь?
forMator
Вот так я нахожу третье слово. А как заменить все буквы на один символ?
Код

Program stroka_1;
Var s:string;
i,p:integer;
begin
writeln('vvedi tekct:');
readln(s);
s:=s+' ';
p:=0;i:=1;
while (i<=length(s)) and (p<2) do
begin
if s[i]=' ' then p:=p+1;
i:=i+1;
end;
if p=2 then begin
while (i<=length(s)) and (s[i]<>' ') do begin
if ??????

else writeln('в тексте меньше 3-х слов');
readln;
end.

p-количесиво пробелов в тексте. Подскажите пожалуйста!
forMator
Если я пишу просто после BEGIN'а и без IF вместо ??:
Код

s[i]:='a'

Он ничего не изменяет!
Подскажите PLEASE!
klem4
Цитата
Дан текст. Слова разделены пробелом. В третьем слове каждую букву заменить на +.


Если в строке не менее 3-х слов и разделяются они _одним_ пробелом.


var
s: String;
p: Integer;
begin
readln(s);
p := Pos(' ', s) + Pos(' ', Copy(s, Pos(' ', Copy(s, Pos(' ', s), 255)), 255)) + 1;
while (p <> Length(s)) and (s[p] <> ' ') do begin
s[p] := '+';
inc(p);
end;
writeln(s);
end.

crazy.gif
forMator
СПАСИБО!!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.