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

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

Войти
Регистрация
Восстановить пароль
 
ntny
7 / 7 / 0
Регистрация: 17.06.2012
Сообщений: 168
#1

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

26.11.2012, 23:29. Просмотров 318. Ответов 0
Метки нет (Все метки)

Здравствуйте.
Пишу простенький аналог стринг.
есть функция реализующая сабж
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
void Remove(int startingIndex, int removedCharactersCount)
    {
        const char* stringFrom = string;
        char* newStringWithoutremovedCharacters
            = new char [ size - removedCharactersCount ];
        copyString( stringFrom, newStringWithoutremovedCharacters, 0, startingIndex );
        copyString( stringFrom, newStringWithoutremovedCharacters, startingIndex + removedCharactersCount, size );
        delete[] string;
        string = newStringWithoutremovedCharacters; 
        size = size - removedCharactersCount;
    }
функция вызыввает.

C++ (Qt)
1
2
3
4
5
6
void СopyString(const char* stringFrom, char* stringTo,
                                 int indexStart, int indexEnd)
    {
        for(int i = indexStart; i < indexEnd; i++) 
            stringTo[i] = stringFrom[i];
    }
строки представляют собой простые символьные массивы с нулевым символом на конце.
Проблема в том, что если скормить функции 'a','c','a','d' с вызовом remove(2,1);
Получу не acd
аac= d
Прошу помочь найти корень ошибки

Добавлено через 11 минут
т.е. ac=d

Добавлено через 2 часа 16 минут
Вот я тупой.
Стоило немного отвлечься на игры престолов и решение само пришло в голову
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
const char* stringFrom = string;
        char* newStringWithoutremovedCharacters
            = new char [ size - removedCharactersCount ];
        int endingIndex = startingIndex + removedCharactersCount; 
        copyString( stringFrom, newStringWithoutremovedCharacters, 0,  startingIndex );
        for(int i = endingIndex, j = startingIndex; i < size; i++, j++)
            newStringWithoutremovedCharacters[j] = string[i];
        delete[] string;
        string = newStringWithoutremovedCharacters; 
        size = size - removedCharactersCount;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2012, 23:29     Удаление символов в подстроке
Посмотрите здесь:

Определить количество пробелов в подстроке, состоящих из первых n сиволов исходной строки C++
удаление символов из строки! C++
удаление символов! зачет\\ C++
Удаление символов из строки C++
Удаление повторяющихся символов C++
C++ Удаление повторяющихся символов
C++ Удаление символов
C++ Замена пробелов в подстроке
Удаление лишних символов C++
C++ Замена строки в подстроке на новую строку
Удаление символов из строки C++

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

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

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