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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 453, средняя оценка - 4.72
milke
2 / 2 / 0
Регистрация: 12.01.2011
Сообщений: 14
#1

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

27.01.2011, 16:49. Просмотров 60261. Ответов 31
Метки нет (Все метки)

Как удалить символ (скобку) в заданной символьной строке?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fra Dolcino
0 / 0 / 0
Регистрация: 09.08.2011
Сообщений: 4
09.08.2011, 12:13     Удаление символа из строки #21
diagon, спасибо! А есть вариант с выводом в тот же файл?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,406
09.08.2011, 12:19     Удаление символа из строки #22
Fra Dolcino, а самому немножко подумать?
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
09.08.2011, 12:19     Удаление символа из строки #23
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
int main(){
    std::fstream input("input.txt");
    std::string text, line;
    while (std::getline(input, line) )
        text += line;
    text.erase(std::remove(text.begin(), text.end(), '\\' ), text.end() );
    input.close();
    input.open("input.txt", std::fstream::out);
    input << text;
}
Это если заменить текст.
Если добавить в конец - замените на std::fstream::app
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4253 / 2785 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
09.08.2011, 12:40     Удаление символа из строки #24

Не по теме:

Цитата Сообщение от Nameless One Посмотреть сообщение
Насколько я знаю, это отличительная особенность именно unix
Вообще-то я в Linux/*nix не силен, но я в Ubuntu менял эти настройки (точнее, как пишут в книгах, настройки драйвера терминала), так, чтоб символ '\n' это был именно переход на новую строку, а не переход и возврат каретки. А Ubuntu, как известно, это не Unix

.
Nameless One
09.08.2011, 12:55
  #25

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
так, чтоб символ '\n' это был именно переход на новую строку, а не переход и возврат каретки
ну так я и говорю, что в unix символ '\n' - это аналог "\r\n" в windows

Сыроежка
Заблокирован
09.08.2011, 15:09     Удаление символа из строки #26
Цитата Сообщение от Nameless One Посмотреть сообщение

Не по теме:


ну так я и говорю, что в unix символ '\n' - это аналог "\r\n" в windows

В С и в С++ - это один символ, называемый концом строки. При использовании стандартных функций вывода представление этого символа в выходном потоке является платформа-зависимым.
Bambaster01
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 50
06.04.2014, 23:27     Удаление символа из строки #27
Народ, а как тогда реализовать функцию, которая будет в строке сдвигать все знаки препинания в конец строки из файла?
smokeman
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 10
20.02.2016, 20:38     Удаление символа из строки #28
Цитата Сообщение от dr.curse Посмотреть сообщение
s.erase(i,1); // удаляет из строки символ с индексом i
а "1"-это количество удалённых символов?

Добавлено через 29 минут
Цитата Сообщение от Bambaster01 Посмотреть сообщение
Народ, а как тогда реализовать функцию, которая будет в строке сдвигать все знаки препинания в конец строки из файла?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 using namespace std;
 
  int main(){
    cout<<"VVedite soobshenie"<< endl;
    int i;
    string s;
    string tmp ="";
    cin>>s;
    for(i=0;i<s.size();i++){
    if (s[i] == '/' || s[i] == '.' || s[i] == ',' || s[i] == '-' || s[i] == '...'){
        tmp = s[i]+tmp;
        s = s.erase(i,1);
    }
    }
    s = s+ tmp;
    cout<<s;
  }
Если что не так,прости,писал на коленках
Павлина
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 7
17.01.2017, 18:27     Удаление символа из строки #29
Вопрос:если это не строка строго говоря, а массив символов?
Если присвоить символу значение /0, то все символы после него теряются?
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6220 / 3465 / 423
Регистрация: 29.11.2010
Сообщений: 9,176
17.01.2017, 19:24     Удаление символа из строки #30
Цитата Сообщение от Павлина Посмотреть сообщение
Если присвоить символу значение /0, то все символы после него теряются?
'\0'
Нет, они остаются на месте, но стандартные сишные функции будут думать, что далее ничего не идёт, т.к. внутри их алгоритмов идёт проверка, что стоит двигаться до ноль-символа.

Не по теме:

Эх, какие люди были в треде.. Я уж обрадовался, пока дату не посмотрел.

Павлина
0 / 0 / 0
Регистрация: 19.05.2016
Сообщений: 7
19.01.2017, 16:55     Удаление символа из строки #31
Цитата Сообщение от MrGluck Посмотреть сообщение
'\0'
Нет, они остаются на месте, но стандартные сишные функции будут думать, что далее ничего не идёт, т.к. внутри их алгоритмов идёт проверка, что стоит двигаться до ноль-символа.
То есть, если вместо ноль-символа в таком случае что-нибудь подставить, то мы увидим дальнейшее содержимое строки?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2017, 17:04     Удаление символа из строки
Еще ссылки по теме:

C++ Копирование из строки от символа до символа
Создать строку: с начало три символа первой строки, потом эти же три символа в обратном порядке C++
C++ Удаление символа перевода строки из самого конца файла
Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа C++
Удаление символа из строки C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6220 / 3465 / 423
Регистрация: 29.11.2010
Сообщений: 9,176
19.01.2017, 17:04     Удаление символа из строки #32
Цитата Сообщение от Павлина Посмотреть сообщение
То есть, если вместо ноль-символа в таком случае что-нибудь подставить, то мы увидим дальнейшее содержимое строки?
Да. До следующего '\0'
Yandex
Объявления
19.01.2017, 17:04     Удаление символа из строки
Ответ Создать тему
Опции темы

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