Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
#1

Заменить в строке две подряд буквы 'a' на одну - C++

02.04.2014, 08:22. Просмотров 1134. Ответов 15
Метки нет (Все метки)

Здравствуйте!
К слову проблема такая, решил заняться программированием, понравилось! Занимаюсь недавно, дали задачку чтоб решить создать программу с функцией которая находит в слове две одинаковые буквы а, и исправляет на одну. Помогите пожалуйста чайнику)) Буду весьма благодарен.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 08:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Заменить в строке две подряд буквы 'a' на одну (C++):

Заменить в строке подряд идущие две буквы на одну - C++
Заменить в строке S подряд идущие буквы «а» на одну букву «а». помогите с кодом.не могу разобратся int _tmain(int argc, _TCHAR* argv) ...

Если в слове есть две заглавные буквы подряд - заменить вторую на строчную - C++
7. Создать приложение, которое считывает строку текста, состоящую только из слов, записанных русскими буквами, разделенных пробела¬ми (с...

Строки. Заменить символы - цифры на символ '*'. В заданной строке заменить подряд идущие пробелы - C++
П.5.16.Правил Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема. ...

Заменить 2 подряд идущие буквы на 1 символ - C++
Заменить 2 подряд идущие буквы на 1 символ У меня вышло как то так но не получается доработать. #include <iostream> #include...

В строке заменить все буквы «О» на «Ъ», а буквы «Е» – на случайные символы - C++
Дана символьная строка. Заменить в ней все буквы «О» на «Ъ», а буквы «Е» – на случайные символы. Использовать функции библиотеки string.h

Заменить в строке все группы подряд идущих точек на многоточие - C++
Помогите составить программу по теме "Строки": Используя функции класса string, заменить в строке все группы подряд идущих точек на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ZaMaZaN4iK
Мой лучший друг-отладчик!
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
02.04.2014, 08:25 #2
Praedo, бежим циклом до конца строки.Смотрим, если этот элемент не равен букве а, то добавляем его к новой строке, если равен а, то смотрим на последний элемент новой строки: если он тоже а, то не добавляем ещё а, а если не а, то добавляем.
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
02.04.2014, 08:32  [ТС] #3
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Praedo, бежим циклом до конца строки.Смотрим, если этот элемент не равен букве а, то добавляем его к новой строке, если равен а, то смотрим на последний элемент новой строки: если он тоже а, то не добавляем ещё а, а если не а, то добавляем.
Спасибо конечно за ответ, но поподробнее если можно. Мне велено создать цилк и вводную строку применяя тип Char с указателем. а если дашь скрипт вообще шикарно будет)) (сорри за это (а если дашь скрипт вообще шикарно будет)))
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.04.2014, 08:34 #4
Цитата Сообщение от Praedo Посмотреть сообщение
Спасибо конечно за ответ, но поподробнее если можно.
Да куда уж ещё подробнее то? И так уже не только разжёвано, но даже переварено.
xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,174
Записей в блоге: 1
02.04.2014, 08:48 #5
Держи

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
using namespace std;
 
char str[]="Hello";
 
int main(){
    cout<<str<<endl;
    for(int i=0; i<6; i++){
        if(str[i]=='l'){
            str[i]='P';
        }
    }
    cout<<str<<endl;
    system("pause");
}


А вот от меня, сиди и читай если ты хочешь быть программистом
http://adorning.ru/2010/01/10/c-urok-6-stroki/
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
02.04.2014, 08:57  [ТС] #6
Спасибо огромное)
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:03  [ТС] #7
Здравствуйте дорогие форумчане, написал короче программу которая по идее должна находить две буквы "а" в тексте и заменять на одну, но она не правильно работает, так как нужно добавить функцию strstrs, а у меня не получается помогите плиз, буду благодарен...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <string>
#include <iostream>
#include <cstring>
using namespace std;
 
 
int main()
{
    setlocale(LC_ALL, "russian");
    
    string str;
    int pos;
 
    pos = str.find("aa");
 
    cin >> str;
    cout << "Ваше слово: " << str << endl;
    for (int i = 0; i < 100; i++)
    {
        if (str[i] == 'aa'){
            str[i] = 'a';
        }
    }
    cout << pos << endl;
    system("pause");
}
alsav22
5417 / 4813 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.04.2014, 07:17 #8
Если используется класс string, то зачем С-шная функция strstr()? У string своих методов хватает (find(), replace()).
IrineK
Заблокирован
03.04.2014, 07:28 #9
Строка 20
Цитата Сообщение от Praedo Посмотреть сообщение
if (str[i] == 'aa')
'aa' - не символ. Символом может быть только одно 'a'.
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:37  [ТС] #10
в том то, и вопрос что я ими пользоваться не умею. (простите чайника, только учусь))
IrineK
Заблокирован
03.04.2014, 07:45 #11
14 строка pos = str.find("aa");
Позицию чего вы определяете. если получение str происходит в 16 строке.

Добавлено через 4 минуты
Если вам можно пи решении пользоваться готовыми методами string, тогда полезным будет:
http://www.cplusplus.com/reference/s...tring/replace/
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:50  [ТС] #12
Цитата Сообщение от IrineK Посмотреть сообщение
14 строка pos = str.find("aa");
Позицию чего вы определяете. если получение str происходит в 16 строке.
опечатка извиняюсь, сначала пробовал на уже введенном тексте. А как реализовать функцию которая найдет в веденном с клавиатуры тексте ошибку?
IrineK
Заблокирован
03.04.2014, 07:52 #13
Цитата Сообщение от Praedo Посмотреть сообщение
А как реализовать функцию которая найдет в веденном с клавиатуры тексте ошибку?
Что есть ошибка?
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:54  [ТС] #14
Оо спасибо за сайт весьма занимательный, и много информации)

Добавлено через 1 минуту
ошибка это опечатка при вводе, вводят строку где есть две буквы "а" и моя программа должна отыскать эти буквы и изменить на одну
IrineK
Заблокирован
03.04.2014, 08:02 #15
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
string str;
int pos;
 
cin >> str;
pos = str.find("aa");
 
if (pos != npos)    //нашли
   cout << "Mistake";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2014, 08:02
Привет! Вот еще темы с ответами:

Заменить в строке одну последовательность символов на другую - C++
Нужно ввести строку, создать вторую из символов первой, заменив каждую последовательность символов &quot;xyz&quot; заменить на &quot;zamenena&quot; и вывести...

В строке имеются только две одинаковые буквы. Найти их. - C++
помогите пожалуйста написать программу!!! В строке имеются только две одинаковые буквы.Найти их.

В строке найти слова содержащие ровно две буквы d - C++
Дана строка, в которой слова разделены одним пробелом. Напечатать все слова , содержащие ровно две буквы d. Помогите. Не знаю как...

Заменить все буквы нижнего регистра в строке на буквы верхнего регистра - C++
Определить функцию, заменяющую все буквы нижнего регистра в строке на буквы верхнего регистра.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.04.2014, 08:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru