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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чем ошибка помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread686223.html
В чем ошибка помогите пожалуйста. # include <iostream.h> # include <stdio.h> # include <math.h> void main() {int a; cout <<" Program 1. Kuhna
C++ Периодические функции Добрый день, помогите написать на с++ или даже на паскале можно,я вообще не понимаю алгоритма, как это написать:) заранее большущие спасибо Периодические функции. Утверждается, что функция у =... http://www.cyberforum.ru/cpp-beginners/thread686222.html
C++ Дано целое число k (1<=k<=365)
1) Дано целое число k (1<=k<=365). Определить, каким будет k-й день года: выходным или рабочим, если 1 января - понедельник. 2) Даны четыре вещественных числа. Определить сколько из них...
C++ лабораторная по информатике
помогите с задачками, пожалуйста! 1. Поменять местами максимальный и последний отрицательный элементы массива А (40). 2. Сформировать новый массив из элементов заданного целочисленного массива...
C++ Вычисление суммы бесконечного ряда http://www.cyberforum.ru/cpp-beginners/thread686177.html
помогите написать программу
C++ Что означает запись ? Что означает(подразумевает) запись: class Datb:public Data{ public:Datb(int m, int x):Data(m){ } Полный код программы: #include <stdio.h> #include <stdlib.h> #include <iostream.h> class Data{... подробнее

Показать сообщение отдельно
Ded_Vasilij
231 / 213 / 15
Регистрация: 01.09.2012
Сообщений: 2,103

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

01.11.2012, 18:09. Просмотров 250. Ответов 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;
}
проблема:
заменяет нормально, но не выводит остальные символы и в конце строки пишет бессмысленный набор символов. Подозреваю что последнее как-то связано с кодировками. Подскажите что я не так сделал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru