Форум программистов, компьютерный форум 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. Библиотеки в С, желательно поподробнее, интересно, что внутри и что можно использовать. 2. Различие в функциях printf/scanf и cout/cin (подозреваю, что отличие состоит как минимум в библиотеках, что подразумевает первый вопрос, и в виде самого процесса считывания...
C++ Числа-близнецы. Напечатать все пары.
Решить задачу, используя функцию. Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, 41 и 43). Напечатать все пары «близнецов», не превышающих заданного значения a. Функция должна проверять является целое число простым или нет (простым является число, если оно делится без остатка только на себя и на 1).
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++ обработка исключений лаб.работа Ввести два числа. Меньшее заменить полусуммой, а большее - удвоенным произведением. Математическое выражение должно исчисляться в отдельной пользовательской функции. Корректность входных данных должна проверяться с помощью механизма перехвата исключений языка С ++. При выполнении задания обеспечить двухуровневую проверку двумя способами: - С помощью вложенных блоков try; - Путем перехвата... подробнее

Показать сообщение отдельно
ntny
7 / 7 / 0
Регистрация: 17.06.2012
Сообщений: 168
26.11.2012, 23:29     Удаление символов в подстроке
Здравствуйте.
Пишу простенький аналог стринг.
есть функция реализующая сабж
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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru