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

странное поведение string::replace - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Быки и коровы. Комментарии к коду. http://www.cyberforum.ru/cpp-beginners/thread747100.html
Нужно прокомментировать программу на языке с++ Игра Быки и Коровы. Чем подробнее тем лучше. Заранее спасибо! #include "stdafx.h" #include <conio.h> #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <time.h> #include < iostream >
C++ очень тяжело,метод квайна-мак-класки Поиск минимальной конъюнктивный нормальной формы булевой функции (случай зависимости функции от 4 переменных) по методу Квайна-Мак-Класки http://www.cyberforum.ru/cpp-beginners/thread747092.html
Рекурсия. Определить, возможно ли из заданных монет получить сумму C++
Здравствуйте помогите разобраться в рекурсии, задана последовательность монет состоящая из n элементов, и сумма, необходимо определить возможно ли из заданных монет получить эту сумму; Помогите пожалуйста,ломаю голову не понимаю, даже как записать на цифрах Например дано 3 5 2 и сумма 6 , значит нельзя, а сумма 7 можно; Добавлено через 35 минут bool f(int sum,int n) { return...
Вычислить сумму S = P1 + P2 произведения P1 четных элементов массива xi и произведения P2 четных элементов массива yi , i = 1, 2, 3 C++
Пожалуйста решите. Вычислить сумму S = P1 + P2 произведения P1 четных элементов массива xi и произведения P2 четных элементов массива yi , i = 1, 2, 3
C++ Определить, делителем каких чисел из целых a, b, c является число k http://www.cyberforum.ru/cpp-beginners/thread747045.html
Пожалуйста решите (очень нужно) Определить, делителем каких чисел из целых a, b, c является число k
C++ Модификация игр Всем привет! Суть вопроса: Какую игру выбрать для модификации, что бы понять основы игростроения. Детали ниже! :) Я достаточно знаю язык С++, чтобы понять практически любой. Проблема в том что у меня мало опыта, да при том так мало, что я просто не знаю как и что делать, с чего начинать... Я решил создать простенькую игрушку, где нужно управлять шариком. Все что получилось это шарик,... подробнее

Показать сообщение отдельно
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
26.12.2012, 23:01     странное поведение string::replace
Приветствую! Имеется следующая проблема. Есть такое состояние программы:
[IMG]http://s16.***********/i190/1212/d8/8065dea5231f.jpg[/IMG]
Т.е. после функции replace строка i3 должно вставиться вместо 7 - 9 символов и должно получиться "go3pa vi3 vooo vaaa!", но вместо этого я получаю "go3pa vi3vaaa!". Более того, концу программы я получаю go3pa vi3va3, т.е. куда-то пропадает vo3 и восклицательный знак. В чем может быть проблема?

Сама задача:
Вход: строка типа string
Выход: строка, в которой символы, идущие подряд, заменяются на CN, где C - сам символ, N - количество повторений. Т.е. "eaaaa bccccc" на "ea4 bc5"

Вот код процедуры:

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
void conversion(string& in) {
 
    int current = 0;
    string ch;
 
    char aux[3] = "aa";
 
    for(unsigned int i = 0; i < in.size() - 1; i++) {
 
        if(in.at(i) == in.at(i+1)) {
 
            ch = in.at(i);
 
            current = i;
 
            while(in.at(current) == in.at(current + 1)) {
 
                ++current;
 
            }
 
            ch.insert(1, itoa((current - i)+1, aux, 10));
 
            in.replace(i, current, ch);
 
            ++i;
 
        }
 
    }
 
}
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru