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

Удалить слово из строки - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ как перейти в начало цикла ? http://www.cyberforum.ru/cpp-beginners/thread665394.html
Подскажите как сделать так, когда введешь 0 как второе число, опросило продолжение программы(то что в конце), ибо так краш просле ввода 0.Просьба сильно не ругать , ибо новичек :-#include <iostream>...
C++ Вычисление объема сыпучего вещества Всем доброго время суток. В баллоне под поршнем с идеальным газом находится сыпучее вещество. Написать программу для вычисления объема сыпучего вещества V, если известно, что при объеме под поршнем... http://www.cyberforum.ru/cpp-beginners/thread665392.html
Файлы в С++(программа) C++
Помогите пожалуйста с небольшой программкой на файлы в с++ вот у меня есть код: #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; void main(void)
указание пути к файлу C++
Столкнулся с проблемой указания пути к файлу. Написал функцию. Вызываю её так: readFile("test.txt",stran,&n); в моем случае файл лежит в папке с проектом. в результате программа зацикливается на...
C++ Как работает header http://www.cyberforum.ru/cpp-beginners/thread665376.html
Объясните как работает функция header в с++. То есть включить в библиотеку свой файл, но как? И как он будет работать, то есть его нужно будет объявлять где то в функции?
C++ Изменить цикл for на цикл do-while помогите передать программу с цикла FOR в цикл DO-WHILE #include <math.h> #include <iostream> #include <conio.h> using namespace std; void main(void) { float a, x, s; подробнее

Показать сообщение отдельно
cmath
Модератор
2440 / 1680 / 134
Регистрация: 11.08.2012
Сообщений: 3,337
Завершенные тесты: 6
07.10.2012, 17:44
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// удаляет из строки str n символов, идущих после символа с номером pos
// ничего не делает, если pos + n больше числа символов в строке
// для работы функции нужно подключить string.h 
//чтобы удалить n символов надо будет написать <название строки>=Erase(<название строки>,<позиция от начала строки>, n)
char* Erase(char *str, int pos, int n) {
    char *buff;
    int i = 0, len;
    len = strlen(str); // нашли длину строки
 
             if (len >= pos + n)
    {
        buff = new char[len - n];
        while(i != pos) // сдвигаем "манипулятор" i до положения pos
        {
            buff[i] = str[i]; // при этом копируем содержимое строки в буфер
            i++;
        }
        while(i != len - n) // просто копируем символы из строки в буфер, пропуская n штук
        {// которые идут после pos
            buff[i] = str[i+n];
            i++;
            if(i == len - n)buff[i] = '\0'; // обрезаем строку в буфере.
        }
        str = buff; // копируем содержимое буфера в строку      
    }
    return str;// возвращаем строку
}
чтобы стереть конкретное слово напишите функцию, которая найдёт его позицию в строке.
З.Ы. delete нету потому, что при выходе из функции всё объявленное там "барахло" высвобождается автоматически. (кст использование delete у меня приводило к сообщению о нехорошем блоке памяти
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru