2 / 2 / 0
Регистрация: 10.01.2010
Сообщений: 26
1

После каждого символа ‘.’ вставить пробел, а следующее слово начать с большой буквы

10.01.2010, 18:19. Показов 23244. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка символов. После каждого символа ‘.’ вставить пробел, а следующее слово начать с большой буквы.

Добавлено через 3 часа 38 минут
ну так что поможет кто??
вот я пытался сделать но не получается

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
program stroka;
var s:string;
i:integer;
begin
writeln('vvedute строку');
readln(s);
for i:=length(s) to 1 do  begin;
if s[i]=('.') then
insert('    ',s,i);
end;
writeln(s);
end.
у меня не получается чтобы после каждого символа '.' вставлялся пробел,а следующее слово начинать с большой буквы(( помогите кто плиз
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.01.2010, 18:19
Ответы с готовыми решениями:

В edit после каждого слова ставить один пробел и каждое слово начинать с большой буквы
Как сделать, что бы в edit после каждого слова ставился только один пробел и каждое слово...

В edit после каждого слова ставить один пробел и каждое слово начинать с большой буквы
Как сделать, что бы в edit после каждого слова ставился только один пробел и каждое слово...

Вставить пробел в строку после каждого символа «.» «,» «!» или «?», если за этими символами не следует пробел
Вставить пробел после каждого символа «.» «,» «!» или «?», если за этими символами не следует...

Вставить после каждого символа строки пробел
С помощью string

10
Эксперт по компьютерным сетямЭксперт Pascal/Delphi
4190 / 1291 / 237
Регистрация: 27.07.2009
Сообщений: 3,962
10.01.2010, 18:31 2
ganterrr, у тя цикл выполняться никогда не будет с таким условием:
Цитата Сообщение от ganterrr Посмотреть сообщение
for i:=length(s) to 1 do
1
57 / 20 / 3
Регистрация: 29.10.2009
Сообщений: 198
10.01.2010, 18:34 3
как то так, надеюсь я понятно обьяснил
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program stroka;
uses crt;
var s:string;
i:integer;
begin
write('vvedute строку:');
readln(s);
for i:=1 to length(s) do begin// проверяем каждый сивол строки с первого по последний
  if s[i]=('.') then begin // Если символ равен "."(его позиция i) то выполняем два действия:
    insert(' ',s,i+1);//1:вставляем в строку символ " " в позицию за точкой(i+1)
    if i+2<=length(s) then s[i+2]:=UpCase(s[i+2]);//2:проверяем если после всавленного нами пробела в который находиться в позиции(i+2) ещё есть символы, тоесть строка не заканчивается пробелом то(символ находящийся в позиции(i+2) преобразуем с помощью функции UpCase )
  end;
end;
writeln(s);
end.
2
2 / 2 / 0
Регистрация: 10.01.2010
Сообщений: 26
10.01.2010, 18:36  [ТС] 4
cп ща буду разбираться
0
57 / 20 / 3
Регистрация: 29.10.2009
Сообщений: 198
10.01.2010, 18:37 5
а ваш цикл работал бы если бы вы написали так
Delphi
1
for i:=length(s) downto 1 do  begin
0
2 / 2 / 0
Регистрация: 10.01.2010
Сообщений: 26
10.01.2010, 18:40  [ТС] 6
пробвал.... на раз работает потом пробел не ставит(((((
1
Тимуровец
445 / 285 / 50
Регистрация: 10.09.2009
Сообщений: 963
10.01.2010, 18:44 7
Нельзя использовать for по длине строки в сочетании добавления буковок в эту-же строку, т.к. границы цикла вычисляются один раз при его старте. Используйте while,Repeat
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
10.01.2010, 19:14 8
Цитата Сообщение от Страдалецъ Посмотреть сообщение
Нельзя использовать for по длине строки в сочетании добавления буковок в эту-же строку, т.к. границы цикла вычисляются один раз при его старте. Используйте while,Repeat
или for i:=length(s) downto 1
1
Тимуровец
445 / 285 / 50
Регистрация: 10.09.2009
Сообщений: 963
10.01.2010, 20:28 9
Это тоже будет неправильно т.к. у вас заранее задается интервал для i, а в процессе выполнения цикла интервал будет изменятся. Еще раз повторюсь, нельзя использовать одну и ту-же строку в цикле for для определения интервала и там-же ее модифицировать.
1
175 / 172 / 40
Регистрация: 14.11.2009
Сообщений: 507
10.01.2010, 20:34 10
Цитата Сообщение от Страдалецъ Посмотреть сообщение
Это тоже будет неправильно т.к. у вас заранее задается интервал для i, а в процессе выполнения цикла интервал будет изменятся. Еще раз повторюсь, нельзя использовать одну и ту-же строку в цикле for для определения интервала и там-же ее модифицировать.
вы уверены?? вот программа опровергающая ваше утверждения
Pascal
1
2
3
4
5
6
7
8
9
var
i:integer;
s:string;
begin
readln(s);
for i:=length(s) downto 1 do
if s[i]=' ' then delete(s,i,1);
writeln(s);
end.
Результат роботы
sdffs dfssd fsd eq sdf fd
sdffsdfssdfsdeqsdffd
1
57 / 20 / 3
Регистрация: 29.10.2009
Сообщений: 198
10.01.2010, 20:42 11
вот через While
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program stroka;
uses crt;
var s:string;
i,n:integer;
begin
write('vvedute строку:');
readln(s);
i:=1;
n:=length(s);
while i<=n do begin// проверяем каждый сивол строки с первого по последний
  if s[i]=('.') then begin // Если символ равен "."(его позиция i) то выполняем два действия:
    insert(' ',s,i+1);//1:вставляем в строку символ " " в позицию за точкой(i+1)
    if i+2<=n then s[i+2]:=UpCase(s[i+2]);//2:проверяем если после всавленного нами пробела в который находиться в позиции(i+2) ещё есть символы, тоесть строка не заканчивается пробелом то(символ находящийся в позиции(i+2) преобразуем с помощью функции UpCase )
    n:=n+1;
  end;
  i:=i+1;
end;
writeln(s);
end.
2
10.01.2010, 20:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.01.2010, 20:42
Помогаю со студенческими работами здесь

Вставить пробел после каждого заданного символа
Вставить пробел после каждого символа &quot;.&quot; &quot;,&quot; &quot;!&quot; или &quot;?&quot;, если за этими символами не следует...

Вставить пробел после каждого символа в .txt
Добрый день, всем! Есть задача форматирования .txt: вставить пробел после каждого символа. Как это...

Вставить в строку пробел после каждого символа
Дана строка. Вставить после каждого символа пробел.

Вставить перед и после каждого заданного символа С пробел
помогите решить пожалуйста вот такую задачу. Дана строка. Вставить перед и после каждого заданного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru