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

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

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

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

26.11.2012, 23:29. Просмотров 322. Ответов 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     Удаление символов в подстроке
Посмотрите здесь:

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

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

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

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

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

Удаление символов из файла - C++
Как удалить символы из открытого для чтения файла при помощи только функций fgetc и fputc? Может написать кто код для, например, удаления...

Удаление символов из строки - 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...

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

Определить количество пробелов в подстроке, состоящих из первых n сиволов исходной строки - C++
Привет друзья:) Столкнулся с такой задачей: Дана строка и натуральное число n. определить количество пробелов в подстроке, состоящих из...

Удаление недостижимых символов в КС грамматике - C++
На вход подается описание контестно-свободной грамматики, состоящая из левой и правой частей. Это строки, состоящие из цифр, строчных и...


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

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

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