Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 43
1

c++ удаление символов строки

15.05.2020, 14:28. Показов 382. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помощи с реализацией удаления символов между первым и последним вхождением символа(включая сам символ с обоих сторон) в каждой строке из вектора,если символа нет,то строка без изменения,если он один-удалить его





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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <fstream>  
#include <iostream> 
#include <string>  
#include <vector> 
#include <list>
#include <iterator> 
//#include <algorithm>
template <typename T>
void WriteData(const char* file_name, const T& data)
{
    std::ofstream out(file_name);
    if (out)
    {
        std::copy(data.begin(), data.end(), std::ostream_iterator<std::string>(out, "\n"));
        out.close();
    }
}
template <typename T>
void ReadData(const char* file_name, T& data)
{
    std::string s;
    std::ifstream in(file_name);
    if (in)
    {
        while (getline(in, s))
        data.push_back(s);
        in.close();
    }
}
int main()
{
    std::vector < std::string> f;  
    ReadData("Source.txt", f);
    for (std::string lotr : f)
    {
      
        size_t F = lotr.find_first_of('m');
        size_t L = lotr.find_last_of('m');
       // while (L != std::string::npos && F != std::string::npos)
      //  {
       
            for (int i = 0; i < 3; i++)
             f[i].erase(f[i].begin()+g, f[i].end());
                
       // }
         
    }
    WriteData("Out.txt", f);
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2020, 14:28
Ответы с готовыми решениями:

Удаление символов из строки
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string&gt; using namespace...

Удаление символов из строки
в С++ есть некая процедура, есть ли аналог в Си? .erase() И можно несколько примеров удаления...

Удаление символов из строки
Условие: Даны натуральное число N, символы s1,...,sn. Удалить из данной последовательности все...

Удаление символов из строки
Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не...

6
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
15.05.2020, 14:49 2
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <iterator>
#include <algorithm>
template <typename T>
void WriteData(const char* file_name, const T& data)
{
        std::ofstream out(file_name);
            if (out)
            {
                std::copy(data.begin(), data.end(), std::ostream_iterator<std::string>(out, "\n"));
                out.close();
            }
}
template <typename T>
void ReadData(const char* file_name, T& data)
{
    std::string s;
    std::ifstream in(file_name);
    if (in)
    {
        while (getline(in, s))
        data.push_back(s);
        in.close();
    }
    else{
            std::cout<< "No file found!!!";
            exit(1);
        }
}
int main()
{
    std::vector < std::string> f;
    ReadData("Source.txt", f);
 
 
       
        for (size_t i = 0; i < f.size(); i++){
 
        size_t F = f[i].find_first_of('m');
        size_t L = f[i].find_last_of('m');
        f[i].erase(f[i].begin()+F, f[i].begin() + L);
 
        }
 
 
 
 
    WriteData("Out.txt", f);
return 0;
}
0
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 43
15.05.2020, 15:04  [ТС] 3
в 44 строке вызывается исключение
0
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
15.05.2020, 15:06 4
выкладывай исключение сюда
0
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 43
15.05.2020, 15:23  [ТС] 5
вложение
Миниатюры
c++ удаление символов строки  
0
365 / 321 / 219
Регистрация: 21.02.2013
Сообщений: 756
15.05.2020, 15:50 6
на моем компиляторе работает без проблем.
Попрбуй такое условие перед 44 строчкой поставить
C++
1
if(L != std::string::npos && F != std::string::npos)
0
0 / 0 / 0
Регистрация: 09.04.2020
Сообщений: 43
15.05.2020, 18:23  [ТС] 7
да,работает,благодарю

Добавлено через 2 часа 30 минут
еще один вопрос,как удалить символ с которого начинается отсчет? т.е символ первого вхождения не удаляется,приходится прописывать еще один erase,что плохо
0
15.05.2020, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2020, 18:23
Помогаю со студенческими работами здесь

Удаление символов k из строки
Помогите пожалуйста,патаюсь написать программу,но не получается,а именно с удалением символа...

Удаление символов из строки
Здравствуйте, стоит задача удалить все знаки препинания и лишние символы из текста, на debian...

Удаление символов из строки
Задача программы -удалить из строки символы верхнего регистра , но проблема в том , что программа...

Удаление n символов из строки
Доброго времени суток, уважаемые жильцы этого форума! Я еще только учусь, так что у самого ума...

Удаление символов из строки
Отдельная функция. Строка типа char. Из строки надо удалить все символы, кроме цифр. Не используя...

Удаление символов из строки
Здравствуйте. В паскале есть процедура Delete(st, i, j) которая удаляет из строки st, начиная с...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru