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

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

Войти
Регистрация
Восстановить пароль
 
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
#1

Нужно все буквы B заменить на решётку #, а буквы A заменить на A и B через раз - C++ - C++

06.07.2015, 14:54. Просмотров 310. Ответов 9
Метки нет (Все метки)

Здравствуйте, мне нужно написать функцию но только не знаю как, нужно чтоб она трансформировала строку в такой вид:
Входная строка:
Код
BBABBABABABBBABBABBABBBABBABBABABBAB
Строка на выходе после обработки функции должна иметь такой вид:
Код
AA#BB#A#B#AAA#BB#AA#BBB#AA#BB#A#BB#A
То-есть все A заменились на #, а B по очереди заменялись на A и B
Код
BBABBABABABBBABBABBABBBABBABBABABBAB
AA#BB#A#B#AAA#BB#AA#BBB#AA#BB#A#BB#A
Функция должна быть типа string, чтоб принимать и возвращать строку.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2015, 14:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нужно все буквы B заменить на решётку #, а буквы A заменить на A и B через раз - C++ (C++):

Нужно все буквы B заменить на решётку #, а буквы A заменить на A и B через раз - C++
в файле дана последовательность букв A и B, нужно все буквы B заменить на решётку #, а буквы A заменить на A и B через раз.

Заменить все малые буквы латинского алфавита на соответствующие большие буквы - C++
Добрый вечер. Помогите, пожалуйста, исправить программу. Задание: Заменить все малые буквы латинского алфавита на соответствующие...

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

Все буквы r в именах файлов заменить на буквы p - C++
ж) Все буквы r в именах файлов заменить на буквы p.

В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра - C++
9. В новом файле заменить все латинские буквы верхнего регистра на буквы нижнего регистра. help

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

9
irises
69 / 26 / 8
Регистрация: 29.06.2015
Сообщений: 105
06.07.2015, 15:47 #2
что то набросала
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
27
28
29
30
#include <iostream>
using namespace std;
 
char changeArr (char *arr)
{
    for (int i=0; i<37; i++)
    {
        if (arr[i] == 'A')
            arr[i] = '#';
    }
    int count = 0;
    for (int i=0; i<37; i++)
    {
        if (arr[i] == 'B')
        {
            switch (count%2)
            {
            case 0 :
                arr[i] = 'A';
                break;
            case 1 :
                arr[i] = 'B';
                break;
            }
        }
        if (arr[i] == '#')
            count++;
    }
    return *arr;
}
C++
1
2
3
4
5
6
7
void main ()
{
    char arr[37] = "BBABBABABABBBABBABBABBBABBABBABABBAB";
    cout<<arr<<endl;
    changeArr(arr);
    cout<<arr<<endl;
}
0
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
06.07.2015, 15:50  [ТС] #3
irises, спасибо, но нужно чтоб входная строка была типа string а не массив
0
irises
69 / 26 / 8
Регистрация: 29.06.2015
Сообщений: 105
06.07.2015, 16:09 #4
Цитата Сообщение от tdo22 Посмотреть сообщение
нужно чтоб входная строка была типа string а не массив
тоесть нужно создать char *arr ?

Добавлено через 17 минут
а, уже поняла
0
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
06.07.2015, 16:16  [ТС] #5
irises, нужно чтоб было так:
C++
1
string str = "BBABBABABABBBABBABBABBBABBABBABABBAB";
0
S_el
2109 / 1628 / 308
Регистрация: 15.12.2013
Сообщений: 6,532
06.07.2015, 16:20 #6
tdo22, вот так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
 
std::string simple_replace(const std::string &str);
int main() {
    std::cout<<simple_replace("BBABBABABABBBABBABBABBBABBABBABABBAB")<<std::endl;
    return 0;
}
std::string simple_replace(const std::string &str)
{
    auto newstr(str);
    bool count = true;
    for(size_t i=0;i<newstr.size();i++)
    {
        if(newstr[i]=='A')
            newstr[i]='#';
        else if(newstr[i]=='B' && count)
            newstr[i]='A';
        if(i!=0 && str[i]!='B' && str[i-1]=='B')
            count=!count;
    }
    return newstr;
}
1
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
06.07.2015, 18:18  [ТС] #7
а как сделать без auto в 11 строке ?
0
S_el
2109 / 1628 / 308
Регистрация: 15.12.2013
Сообщений: 6,532
06.07.2015, 18:24 #8
Цитата Сообщение от tdo22 Посмотреть сообщение
а как сделать без auto в 11 строке ?
указать тип самому.Его вы легко определите сами,если посмотрите на возвращаемое значение функции.
0
matxon
4 / 4 / 1
Регистрация: 14.09.2014
Сообщений: 14
06.07.2015, 18:36 #9
В линуксе выдает такую ошибку

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
[------@--- cpp]$ g++ 1493959-2.cpp -o 1493959-2
1493959-2.cpp: In function ‘std::string simple_replace(const string&)’:
1493959-2.cpp:11:20: error: ISO C++ forbids declaration of ‘newstr’ with no type [-fpermissive]
     auto newstr(str);
                    ^
1493959-2.cpp:11:20: error: cannot convert ‘const string {aka const std::basic_string<char>}’ to ‘int’ in initialization
1493959-2.cpp:13:29: error: request for member ‘sizein ‘newstr’, which is of non-class type ‘int’
     for(size_t i=0;i<newstr.size();i++)
                             ^
1493959-2.cpp:15:20: error: invalid types ‘int[size_t {aka long unsigned int}]for array subscript
         if(newstr[i]=='A')
                    ^
1493959-2.cpp:16:21: error: invalid types ‘int[size_t {aka long unsigned int}]for array subscript
             newstr[i]='#';
                     ^
1493959-2.cpp:17:25: error: invalid types ‘int[size_t {aka long unsigned int}]for array subscript
         else if(newstr[i]=='B' && count)
                         ^
1493959-2.cpp:18:21: error: invalid types ‘int[size_t {aka long unsigned int}]for array subscript
             newstr[i]='A';
                     ^
1493959-2.cpp:22:12: error: could not convert ‘newstr’ from ‘int’ to ‘std::string {aka std::basic_string<char>}’
     return newstr;
            ^
0
tdo22
10 / 10 / 1
Регистрация: 14.02.2013
Сообщений: 728
06.07.2015, 18:42  [ТС] #10
matxon, нужно включить поддержку c++11
0
06.07.2015, 18:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2015, 18:42
Привет! Вот еще темы с ответами:

В текстовом файле заменить все лова начинающиеся с буквы "а" на первое место, которое начинается с буквы "с" - C++
ЗАВТРА ЭКЗАМЕН И НЕ РЕШИЛА ЭТУ ЗАДАЧУ! НЕ ЗНАЮ КАК! ели знаете как ее решить-решите, очень надо! В текстовом файле заменить все лова...

Ввести символьную строку и заменить все буквы "а" на буквы "б" и наоборот, как заглавные, так и строчные. - C++
1. Ввести символьную строку и заменить все буквы &quot;а&quot; на буквы &quot;б&quot; и наоборот, как заглавные, так и строчные. Пример: Введите...

Файл содержит буквы латинского алфавита. Заменить буквы 'р' на 'w' - C++
Помогите с задачей.Файл содержит буквы латинского алфавита. Заменить буквы 'р' на 'w'.

Заменить все малые буквы большими - C++
Добрый день, помогите доделать программу. Ругается на gets(s);. Условие: Рассмостреть участок строки до первого пробела (первый символ...


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

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

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