Автор Андрей задал вопрос в разделе Другие языки и технологии
Строковые переменные (Паскаль).Подскажите пожалуйста и получил лучший ответ
Ответ от Krab Вark[гуру]
var i:integer; Str:string;
begin
Writeln('Введите текст'); Readln(Str); i:=0;
repeat
inc(i); if Str[ i]='.' then begin insert('..',Str,i); i:=i+2 end;
if Str[ i] ='!' then Str[ i]:='.';
until i=length(Str));
writeLn(str); readln
end.
Ответ от Ѐоман Малиновский[гуру]
я так понимаю у тебя если точка в середине то он в этом месте дофига точек ставит?
вот сматри какая фигня получается, ты вставляешь раз 3 точки заместо одной, длинна строки увеличивается, а все символы которые находятся после точки сдвигаютя, т. е их индекс меняется.
допустим было
123.123
точка находится под индексом i = 4
потом проход цикла при i = 4 становится
123...123
затем, следующий проход, i = 5, он опять видит точку и тд
в этом причина
я так понимаю у тебя если точка в середине то он в этом месте дофига точек ставит?
вот сматри какая фигня получается, ты вставляешь раз 3 точки заместо одной, длинна строки увеличивается, а все символы которые находятся после точки сдвигаютя, т. е их индекс меняется.
допустим было
123.123
точка находится под индексом i = 4
потом проход цикла при i = 4 становится
123...123
затем, следующий проход, i = 5, он опять видит точку и тд
в этом причина
Ответ от ИГОРЬ[гуру]
Чет мне не понятно как у тебя конструкция if (Str ='.') работает? ?
я понимаю if(Str = '.') т. е. сравнение символа (элемента массива) с символом ТОЧКА
а как ты строку с точкой сравниваешь я понять не могу!
Роман Малиновский прав! Учитывай смещение после вставки 3-х точек!
Чет мне не понятно как у тебя конструкция if (Str ='.') работает? ?
я понимаю if(Str = '.') т. е. сравнение символа (элемента массива) с символом ТОЧКА
а как ты строку с точкой сравниваешь я понять не могу!
Роман Малиновский прав! Учитывай смещение после вставки 3-х точек!
Ответ от Александр Ерофеев[гуру]
писал в блокноте и не проверял так что могут быть ошибки
var n,i:integer;
S1:string[3];
Str:string;
begin
Writeln('Введите текст'); Read(Str);
{Для А}
for i := 1 to Length(Str) do
begin
if (Str ='!') then begin Str:= '.';
end;
writeLn(str);
{Для Б}
i:=0;
n:=length(str);
while i<>n do
begin
if(str='.') then
begin
delete(str,i,1);
insert(str,'...',i);
n:=n+2;
i:=i+1;
end;
end;
writeLn(str);
end.
писал в блокноте и не проверял так что могут быть ошибки
var n,i:integer;
S1:string[3];
Str:string;
begin
Writeln('Введите текст'); Read(Str);
{Для А}
for i := 1 to Length(Str) do
begin
if (Str ='!') then begin Str:= '.';
end;
writeLn(str);
{Для Б}
i:=0;
n:=length(str);
while i<>n do
begin
if(str='.') then
begin
delete(str,i,1);
insert(str,'...',i);
n:=n+2;
i:=i+1;
end;
end;
writeLn(str);
end.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Строковые переменные (Паскаль).Подскажите пожалуйста
спросили в Паскаль
функция ORD на паскале плизз напишите что она делает... и если можно то подробнее....и если можно то подробнее...
Код символа в Паскале можно определить при помощи функции Ord.
Ее формат: Ord(C), где С -
подробнее...
функция ORD на паскале плизз напишите что она делает... и если можно то подробнее....и если можно то подробнее...
Код символа в Паскале можно определить при помощи функции Ord.
Ее формат: Ord(C), где С -
подробнее...
как в Excel поменять местами 2 последних символа в строке при помощи функций?
lll = mid(stroka,1, len(stroka)-2)+mid(stroka,len(stroka), 1)+mid(stroka,len(stroka)-1, 1)
в
подробнее...
спросили в Word
Pascal тип данных word
Тип данных word - это целочисленный тип длиной в 2 байта. К строковым переменным отношения не
подробнее...
Pascal тип данных word
Тип данных word - это целочисленный тип длиной в 2 байта. К строковым переменным отношения не
подробнее...
Помогите, пожалуйста с задачей по программированию.
Вводим число
Число преобразуем в строку
берем от этой строковой переменной
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Randomness
Из массива в строку
Ну может поэлементно можно. Пусть есть строковая переменная "текст" Берём массив
мас [н] ,
подробнее...
Из массива в строку
Ну может поэлементно можно. Пусть есть строковая переменная "текст" Берём массив
мас [н] ,
подробнее...
Что такое массив. Что такое массив в программировании. Объясните / дайте пример.
Массив - это набор одинаковых данных, расположенных в переменных, пронумерованных индексами.
подробнее...
ЧТО ТАКОЕ "?
" (еще точка с запятой на конце) знак кавычки. собственно кавычки используются для
подробнее...
спросили в Техника
scanf и printf приемущества и недостатки
В каком смысле преимущества и недостатки? По сравнению друг с другом или по сравнению с другими
подробнее...
scanf и printf приемущества и недостатки
В каком смысле преимущества и недостатки? По сравнению друг с другом или по сравнению с другими
подробнее...
спросили в Другое
Касравнить 2 колонки в Excel и выбрать несовпадающие значения
Инструкция
1
Воспользуйтесь встроенной функцией сравнения ячеек СЧЁТЕСЛИ, если надо
подробнее...
Касравнить 2 колонки в Excel и выбрать несовпадающие значения
Инструкция
1
Воспользуйтесь встроенной функцией сравнения ячеек СЧЁТЕСЛИ, если надо
подробнее...
спросили в Vertigo
VORTEX?
Vortex (досл. ВОДОВОРОТ) - свободный поток воздуха внутри компрессора.
VORTEX - система
подробнее...
VORTEX?
Vortex (досл. ВОДОВОРОТ) - свободный поток воздуха внутри компрессора.
VORTEX - система
подробнее...
спросили в Type Moon
как сделать чтобы при нажатии на кнопку выводился заданный текст в Delphi. хелп
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Текст сообшения');
подробнее...
как сделать чтобы при нажатии на кнопку выводился заданный текст в Delphi. хелп
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Текст сообшения');
подробнее...
Пожалуйста, объясните каждую строчку действий в паскале:
Var - раздел переменных, здесь мы объявляем какие переменные каких типов у нас будут
подробнее...
помогите по pascal
1. Оператор условия. Если выполняется некоторое условие, то выполняем одно действие; иначе
подробнее...
C#. Есть строковая переменная "name" в кодировке "windows-1251", как перекодировать переменную в "utf-8" ?
Это что? Набор байтов? Строка? Почему вы решили, что там
подробнее...