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

Операции со строками. Если символ встречается более одного раза, второе вхождение– заменить на "2", третье - на "3"

30.05.2012, 14:35. Показов 2282. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана символьная строка. Если какой-то символ встречается в ней более одного раза, первое вхождение этого символа оставить без изменения, второе – заменить цифрой «2», третье – «3» и т.д.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.05.2012, 14:35
Ответы с готовыми решениями:

Операции со строками.Заменить в строке букву "а" на "с", если она стоит на чётном месте,и на "у" если на нечётном
Дана строка.Заменить в строке букву "а" на "с", если она стоит на чётном месте,и на "у" если на...

Если в тексте есть цифра "2", то каждый символ перед этой цифрой заменить на букву "а"
Помогите пожалуйста с задачкой в Паскале. Дан текст. Если в нем есть цифра 2, то каждый символ...

В данном словосочетании заменить два символа "ас" на один символ "*" и удалить букву "о"
В данном словосочетании заменить два символа "ас" на один символ "*" и удалить букву "о".

Составить программу, в которой каждая буква "а", которая встречается в тексте, заменить на группу символов "ку"
Составить программу, в которой каждая буква "а", которая встречается в тексте, заменить на группу...

2
155 / 97 / 101
Регистрация: 25.02.2012
Сообщений: 232
30.05.2012, 15:08 2
Лучший ответ Сообщение было отмечено gemoglob как решение

Решение

Если символ повторяется более 9 раз, программа его пропустит. Можно добавить и остальные символы, кроме строчных латинских букв.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  a: array ['a'..'z'] of integer;
  i: integer;
  s: string;
 
begin
  readln(s);
  
  for i := 1 to length(s) do 
    if s[i] in ['a'..'z'] then inc(a[s[i]]);  // подсчитываем количество вхождений каждого символа
  
  for i := length(s) downto 1 do  // строку рассматриваем с конца
    if (s[i] in ['a'..'z']) and (a[s[i]] in [2..9]) then  // если символ "нужный" и встречается менее 10 и более одного раза
    begin
      dec(a[s[i]]);   // понижаем статистику вхождения буквы  
      s[i] := chr(a[s[i]] + ord('1')); // не придумал ничего лучше этого     
    end;
  writeln(s); 
  
end.
2
0 / 0 / 0
Регистрация: 20.05.2012
Сообщений: 8
30.05.2012, 15:37  [ТС] 3
большое спасибо за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2012, 15:37
Помогаю со студенческими работами здесь

Выведите на экран все слова из К букв, в которых буква "Ы" встречается более 1 раза, и подсчитайте их количество
Выведите на экран все слова из К букв, в которых буква "Ы" встречается более 1 раза, и подсчитайте...

В паскале выведите на экран все слова из К букв,в которых буква "Ы" встречается более 1 раза,и подсчитайте их количество
Алфавит языка племени "тумба-юмба" состоит из букв Ы, Ц, Щ и О. Число K вводится с клавиатуры.В...

Решение заданий типа "Array","Matrix","String","File","Text"""
большая просьба помочь решить где-то около 35-40 (из 100) задач (мне не понятных) типа массив и...

Написать программу проверки правильности написания сочетаний "жи", "ши", "ча", "ща", "чу", "щу". Исправить ошибки
дан текст.написать программу проверки правильности написания сочетаний "жи", "ши", "ча", "ща",...


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

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

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