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

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

Войти
Регистрация
Восстановить пароль
 
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103
#1

Замена символа на подстроку - C++

01.11.2012, 18:09. Просмотров 248. Ответов 0
Метки нет (Все метки)

задача:

Постройте по строке новую строку, которая получена из исходной заменой символа '1' на подстроку ”один”,
символа ‘2’ на подстроку “два” и символа ‘3’ на подстроку “три”.
решение:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
int insertin(char* rez, int k,const char* s)
{
    for (int i = 0; s[i] != 0; i++, k++)
    {
        rez[k] = s[i];      
    }
    return k;
}
char* insert(char* str)
{
    const char* ins1 = "odin";
    const char* ins2 = "dva";
    const char* ins3 = "tri";
    int i = 0;
    int odin = 0;
    int dva = 0;
    int tri = 0;
    int length = 0;
    for (length = 0;str[length] != 0; length++)
    {
        if (str[length] == '1')
            odin++;
        if (str[length] == '2')
            dva++;
        if (str[length] == '3')
            tri++;
    }
    length = length + odin * 3 + dva * 2 + tri * 2;
    char* rez = new char [length + 2];
    int k = 0;
 
    for (;str[i] != 0;i++)
    {
        if (str[i] == '1')
        {
             k = insertin(rez, k, ins1);
        }
        if (str[i] == '2')
        {
             k = insertin(rez, k, ins2);
        }
        if (str[i] == '3')
        {
             k = insertin(rez, k, ins3);
        }
    }
    return rez;
}
int _tmain(int argc, _TCHAR* argv[])
{
    
    char* ins = "11jhg";
    cout << ins << endl;
    cout << insert(ins) << endl;
    system ("pause");
    return 0;
}
проблема:
заменяет нормально, но не выводит остальные символы и в конце строки пишет бессмысленный набор символов. Подозреваю что последнее как-то связано с кодировками. Подскажите что я не так сделал.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2012, 18:09     Замена символа на подстроку
Посмотрите здесь:

Найти в строке подстроку от символа 'm' до 'n' - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &quot;string.h&quot; using namespace std; void main(){ char mas=&quot;comanda&quot;; char...

В тексте после указанного символа вставить подстроку - C++
Помогите сделать лабораторку пожалуйста)

В тексте после указанного символа создать подстроку - C++
В тексте после указанного символа создать подстроку. Строка,символ и подстрока должны быть введены с клавиатуры.

В тексте после указанного символа вставить подстроку - C++
в тексте после указанного символа вставить подстроку

После каждого вхождения символа «$» в строке вставлять подстроку «End» - C++
После каждого вхождения символа «$» в строке вставлять подстроку «End» Подсчитать число вставок.

Найти запись подстроку в строке в файле до символа "\n" и вернуть её оттуда - C++
Не получается преобразовать строку в указатель на массив. Тонкостей увы не знаю таких операций. Подскажите. Изменения нужно внести в ф-ию...

Замена символа - C++
Здравствуйте!!! помогите решить задачку! Дано строка символов оттуда надо убрать букву &quot;А&quot; и вместо буквы &quot;Е&quot; заменить буквой &quot;Э&quot;. ...

замена символа - C++
Собственно учу си по манам из инетов, есть вот такой пример #include &lt;stdio.h&gt; void sp_to_dash(const char *str); int main(void)...

замена символа - C++
Здрасти. почиму не работает такой вариант? char* b=&quot;123456&quot;; *(b+2)='*'; что нужно изменить чтобы заработало?

Замена символа в строке - C++
Доброго времени суток. Помогите разобраться с ошибкой. 2 IntelliSense: отсутствуют экземпляры перегруженная функция...

Замена символа в строке - C++
Подскажите пожалуйста почему код не работает корректно? #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;cstring&gt; #include...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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