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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ограниченый доступ фрэнда http://www.cyberforum.ru/cpp-beginners/thread710107.html
как в классе Б сделать так , чтоб он позволял видеть только некоторые свои переменные(допустим заключённые в пространство имён) классу А, но при этом не использовать публик?
C++ Игра "Лабиринт", C++ Реализация класса «стек» в задачах поиска выхода из лабиринта. Описать класс, реализующий стек. Написать программу, использующую этот класс для отыскания прохода по лабиринту. Лабиринт... http://www.cyberforum.ru/cpp-beginners/thread710105.html
Подскажите, пожалуйста, хорошую литературу C++
Всем привет! Огромная просьба к вам: ищу хорошую литературу по С++ (начинаю работать в Visual Studio). Что особенно интересует: 1. Библиотеки в С, желательно поподробнее, интересно, что внутри и...
C++ Числа-близнецы. Напечатать все пары.
Решить задачу, используя функцию. Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары «близнецов», не превышающих заданного...
C++ не считывает текст из файла http://www.cyberforum.ru/cpp-beginners/thread710063.html
Добрый вечер всем. вот собсна код, который не хочет работать из файла. #include "iostream" #include "time.h" #include "conio.h" #include <fstream> using namespace std; struct ZNAK {
C++ обработка исключений лаб.работа Ввести два числа. Меньшее заменить полусуммой, а большее - удвоенным произведением. Математическое выражение должно исчисляться в отдельной пользовательской функции. Корректность входных данных... подробнее

Показать сообщение отдельно
ntny
7 / 7 / 0
Регистрация: 17.06.2012
Сообщений: 168

Удаление символов в подстроке - 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru