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

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

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

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

26.11.2012, 23:29. Просмотров 327. Ответов 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;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2012, 23:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление символов в подстроке (C++):

Доступ к подстроке - C++
Легален ли следующий доступ к подстроке? Не UB ли это? //g++ 5.4.0 #include &lt;iostream&gt; int main() { char data =...

Замена пробелов в подстроке - C++
Мне нужно написать функцию которая будет находить и заменять обычный пробел на нижний, не совсем разобрался с функцией replace, вышло...

Замена строки в подстроке на новую строку - C++
Все доброго времени суток. Я написал программу, которая в строке S ищет подстроку S1 и заменяет ее на строку S2, но написал я эту программу...

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

Удаление символов строки - C++
В строке удалить второй и четвертый по счету символы

Удаление символов из строки - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace std; int main() { string...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2012, 23:29
Привет! Вот еще темы с ответами:

Удаление повторяющихся символов - C++
Есть строка символов, я её обрабатываю, удаляю слово с повторяющимися символами,дело в том что заодно удаляются и цифровые слова, 55 44 33...

Удаление символов из строки - C++
Здравствуйте, стоит задача удалить все знаки препинания и лишние символы из текста, на debian упорно не удаляются длинное тире — и...

удаление символов! зачет\\ - C++
написать функцию удаления из строки s всех символов ASCII-коды которых попадают в диапозон от н1 до н2 включительно 0&lt;=н1&lt;=255,0&lt;=н2&lt;=255,...

Удаление символов из строки - C++
Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть...


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

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

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