IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Строки, замена каждой буквы
forMator
сообщение 14.11.2006 18:18
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


У меня снова возник вопрос!
Дан текст. Слова разделены пробелом. В третьем слове каждую букву заменить на +.
Как сделать чтобы именно в третьем слове заменялись буквы?
И как заменить каждую буквы?
Я могу заменить только определённую букву.
Подскажите пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 14.11.2006 18:31
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Когда покажешь как ты разбиываешь строку на слова, можно будет беседовать дальше. Если кидаешь слова в массив, это одно, если разбиваешь "на ходу" другое ... Хотя принцип похож естественно, определяешь каждое третье слово (в массиве простым циклом через 2), если на ходу разворачиваешь, то счетчик делай, и провепку if count mod 3 = 0 then это очередное нужное слово


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 14.11.2006 19:12
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Вот так:
Код

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 - 14.11.2006 19:13
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 14.11.2006 19:18
Сообщение #4


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


и при чем здесь такая замена?
тебе надо разбить строку на слова, то есть выделить отдельные слова. как ты ЭТО делаешь?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 16.11.2006 22:33
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Вот так я нахожу третье слово. А как заменить все буквы на один символ?
Код

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-количесиво пробелов в тексте. Подскажите пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 19.11.2006 14:33
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Если я пишу просто после BEGIN'а и без IF вместо ??:
Код

s[i]:='a'

Он ничего не изменяет!
Подскажите PLEASE!

Сообщение отредактировано: forMator - 19.11.2006 14:34
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 19.11.2006 15:09
Сообщение #7


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Цитата
Дан текст. Слова разделены пробелом. В третьем слове каждую букву заменить на +.


Если в строке не менее 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


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
forMator
сообщение 19.11.2006 20:43
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


СПАСИБО!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"