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

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

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

C++ Если в слове есть две заглавные буквы подряд - заменить вторую на строчную
В строке имеются только две одинаковые буквы. Найти их. C++
C++ Заменить в строке все группы подряд идущих точек на многоточие
C++ Заменить в данном предложении всюду одну букву на другую. Компьютер должен запрашивать обе буквы
C++ Заменить 2 подряд идущие буквы на 1 символ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
02.04.2014, 08:25     Заменить в строке две подряд буквы 'a' на одну #2
Praedo, бежим циклом до конца строки.Смотрим, если этот элемент не равен букве а, то добавляем его к новой строке, если равен а, то смотрим на последний элемент новой строки: если он тоже а, то не добавляем ещё а, а если не а, то добавляем.
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
02.04.2014, 08:32  [ТС]     Заменить в строке две подряд буквы 'a' на одну #3
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
Praedo, бежим циклом до конца строки.Смотрим, если этот элемент не равен букве а, то добавляем его к новой строке, если равен а, то смотрим на последний элемент новой строки: если он тоже а, то не добавляем ещё а, а если не а, то добавляем.
Спасибо конечно за ответ, но поподробнее если можно. Мне велено создать цилк и вводную строку применяя тип Char с указателем. а если дашь скрипт вообще шикарно будет)) (сорри за это (а если дашь скрипт вообще шикарно будет)))
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.04.2014, 08:34     Заменить в строке две подряд буквы 'a' на одну #4
Цитата Сообщение от Praedo Посмотреть сообщение
Спасибо конечно за ответ, но поподробнее если можно.
Да куда уж ещё подробнее то? И так уже не только разжёвано, но даже переварено.
xTIGRx
 Аватар для xTIGRx
292 / 198 / 2
Регистрация: 23.10.2010
Сообщений: 1,169
Записей в блоге: 1
02.04.2014, 08:48     Заменить в строке две подряд буквы 'a' на одну #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  [ТС]     Заменить в строке две подряд буквы 'a' на одну #6
Спасибо огромное)
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:03  [ТС]     Заменить в строке две подряд буквы 'a' на одну #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
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
03.04.2014, 07:17     Заменить в строке две подряд буквы 'a' на одну #8
Если используется класс string, то зачем С-шная функция strstr()? У string своих методов хватает (find(), replace()).
IrineK
Заблокирован
03.04.2014, 07:28     Заменить в строке две подряд буквы 'a' на одну #9
Строка 20
Цитата Сообщение от Praedo Посмотреть сообщение
if (str[i] == 'aa')
'aa' - не символ. Символом может быть только одно 'a'.
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:37  [ТС]     Заменить в строке две подряд буквы 'a' на одну #10
в том то, и вопрос что я ими пользоваться не умею. (простите чайника, только учусь))
IrineK
Заблокирован
03.04.2014, 07:45     Заменить в строке две подряд буквы 'a' на одну #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  [ТС]     Заменить в строке две подряд буквы 'a' на одну #12
Цитата Сообщение от IrineK Посмотреть сообщение
14 строка pos = str.find("aa");
Позицию чего вы определяете. если получение str происходит в 16 строке.
опечатка извиняюсь, сначала пробовал на уже введенном тексте. А как реализовать функцию которая найдет в веденном с клавиатуры тексте ошибку?
IrineK
Заблокирован
03.04.2014, 07:52     Заменить в строке две подряд буквы 'a' на одну #13
Цитата Сообщение от Praedo Посмотреть сообщение
А как реализовать функцию которая найдет в веденном с клавиатуры тексте ошибку?
Что есть ошибка?
Praedo
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 12
03.04.2014, 07:54  [ТС]     Заменить в строке две подряд буквы 'a' на одну #14
Оо спасибо за сайт весьма занимательный, и много информации)

Добавлено через 1 минуту
ошибка это опечатка при вводе, вводят строку где есть две буквы "а" и моя программа должна отыскать эти буквы и изменить на одну
IrineK
Заблокирован
03.04.2014, 08:02     Заменить в строке две подряд буквы 'a' на одну #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, 10:56     Заменить в строке две подряд буквы 'a' на одну
Еще ссылки по теме:

C++ Заменить в строке подряд идущие две буквы на одну
Заменить в строке одну последовательность символов на другую C++
В строке найти слова содержащие ровно две буквы d C++

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
03.04.2014, 10:56     Заменить в строке две подряд буквы 'a' на одну
  #16
 Комментарий модератора 
Praedo, пункт 5.5 Правил: ведите обсуждение одного конкретного вопроса в одной конкретной теме.
Yandex
Объявления
03.04.2014, 10:56     Заменить в строке две подряд буквы 'a' на одну
Ответ Создать тему
Опции темы

Текущее время: 16:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru