Перейти к содержимому

Как удалить символ из строки паскаль

  • автор:

Удаление одинаковых символов

Оставить в строке только один экземпляр каждого встречающегося символа.

  • s – исходная строка;
  • s_new – конечная строка;
  • c – переменная для очередного символа.

Алгоритм решения задачи:

  1. Взять очередной символ из s .
  2. Если он не содержится в s_new , присоединить его к этой строке.
var s, s_new: string; c: char; i: byte; begin readln(s); s_new := ''; for i:=1 to length(s) do begin c := s[i]; if pos(c, s_new) = 0 then s_new := s_new + c end; writeln(s_new); end.
hello world helo wrd

как удалить символ со строки в программе паскаль? мне нужно из слова programm удалить символы чтобы получилось pramm

ДЕЛЕТЕ (ВАР С: СТРИНГ; ИНДЕХ, КАУНТ: ИНТЕДЖЕР)
процедура удаляет из строки-параметра С подстроку длиной КАУНТсимволов, начиная с символа под номером ИНДЕХ.
пример.

С: = ‘система турбо паскаль’;
ДЕЛЕТЕ (С, 8,6);

примеч. большие буквы в тексте нужно заменить на английские по транслитерации (почему то не позволяется вводить в ответ английские символы)

Ольга Каляева-Веселова

starget,s:string;
begin
starget:=’programm’;
s:=’rog’;
delete(starget,pos(s),length(s));
end;
удалит из строки starget строку s.

Как удалить символ из строки паскаль

Сообщение от MyLastHit

Наверное проще бы было здесь так:

for i:=1 to endstr do if s[i]<>',' then s1:=s1+s[i];

Если повнимательнее присмотритесь к своему циклу, то поймете, что размер строки после каждой найденной запятой уменьшается. За счет этого происходит смещение

Большое спасибо, сам бы точно не додумался до такого.

Регистрация: 12.01.2011

Сообщений: 19,500

Так происходит потому что строка уменьшается на 1 символ и вы «перепрыгиваете» его.
У меня получился только вот такой костыль (войдет в бесконечный цикл если запятая — последний символ строки):

for i:=1 to endstr do if s[i]=',' then begin Delete(s,i,1); i:=i-1; endstr:=endstr-1; end;

upd: а, уже выше нормальный вариант

Последний раз редактировалось Alex11223; 14.05.2011 в 22:27 .

Удалить символы из строки

Ввести фамилию имя отчество в строку. определить количество вхождений символа а и длину введенной строки. Удалить из нее все символы а и б. Переменная должна быть string. Спасибо заранее.

Лучшие ответы ( 1 )

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

Ответы с готовыми решениями:

Даны две строки. Из множества символов первой строки удалить символы содержащиеся во второй строке.
составить программу для решения задач: 6. Даны две строки. Из множества символов первой строки.

Удалить символы из строки
Помогите пожалуйуста с задачей: Из строки символов удалить символы, коды которых лежат на.

Удалить символы из заданной строки
Дана строка s, содержащая менее чем 256 символов. Удалить из данной последовательности символов все.

Строка: Удалить все символы «а» заданной строки.
Дана строка. Удалить все символы «а».

Эксперт Pascal/Delphi

6809 / 4566 / 4819

Регистрация: 05.06.2014

Сообщений: 22,438

Лучший ответ

Сообщение было отмечено koshak98 как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
var s: string; i, ka: integer; begin readln(s); ka := 0; for i := 1 to length(s) do if s[i] = 'а' then inc(ka); writeln('Количество букв "a": ', ka); writeln('Длина слова: ', length(s)); for i := length(s) downto 1 do if (s[i] = 'а') or (s[i] = 'б') then delete(s, i, 1); writeln('Измененное слово: ', s); end.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *