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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
Viktor111
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
#1

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

05.03.2013, 10:52. Просмотров 2075. Ответов 5
Метки нет (Все метки)

вот такая задача надо что бы программа удаляла первый и последний пробел в строке. строку вводим мы сами. я вот написал что бы удаляла все пробелы но надо только первый и последний подскажите что надо поменять ??
спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string str;
    size_t i;
    std::cout << "Введите строку" << std::endl;
    std::getline(std::cin, str, '\n');
    while((i=str.find(' '))!=std::string::npos)
        str.erase(i, 1);
 
    std::cout << str << std::endl;
    system("pause");
    return EXIT_SUCCESS;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2013, 10:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление пробелов в строке (C++):

Создание программы со своей библиотекой ( удаление элементов с N по M в строке и удаление лишних пробелов(если 2 и более оставить один)) - C++
добрый день. помогите, пожалуйста понять мои ошибки в работе. Мне нужно написать программу со своей библиотекой, которая включает в себя...

Удаление пробелов в введенной строке - C++
Вот я думаю надо так,но не получается //Удаление пробелов в строке #include&lt;iostream&gt; #include&lt;cstring&gt; #define N 80 using...

Удаление начальных и конечных пробелов в строке - C++
Доброго времени суток! Задание: предложите 2 вар-та функции, удаляющие начальные и концевые пробелы в строке. шапка: #include...

Удаление пробелов в строке без использования модуля <string.h> - C++
Задача такая Ниже приведен текст. Дана строка.преобразовать ее следующим образом:удалить группы пробелов если имеються которыми эта...

Найти число пробелов в строке и заменить их на номер по порядку в исходной строке - C++
Задание: Во введенной пользователем строке найти число пробелов и заменить все пробелы на их номер по порядкув исходной строке. Например...

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). - C++
В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
aagubarev
0 / 0 / 0
Регистрация: 05.03.2013
Сообщений: 10
05.03.2013, 11:09 #2
Цитата Сообщение от Viktor111 Посмотреть сообщение
вот такая задача надо что бы программа удаляла первый и последний пробел в строке. строку вводим мы сами. я вот написал что бы удаляла все пробелы но надо только первый и последний подскажите что надо поменять ??
спасибо
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main()
{
    setlocale(LC_ALL, "Russian");
    std::string str;
    size_t i;
    std::cout << "Введите строку" << std::endl;
    std::getline(std::cin, str, '\n');
    while((i=str.find(' '))!=std::string::npos)
        str.erase(i, 1);
 
    std::cout << str << std::endl;
    system("pause");
    return EXIT_SUCCESS;
}
С++ я не знаю, но первый ты же можешь найти в строке пробел, так и первый с конца обратным циклом попробуй найти.

а можешь попробовать str.erase(здесь использовать функцию поиска пробела); (не знаю как на с++).

Так для размышления.
0
Viktor111
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
05.03.2013, 11:15  [ТС] #3
мне надо с помощью функции "string trim ( string $s );"
0
pontakrin
1 / 1 / 0
Регистрация: 22.03.2010
Сообщений: 71
05.03.2013, 11:27 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
using namespace std;
 
int main(void){
     string str = " string string   string ";
 
     cout << ">" << str << "<" <<   endl;   // до
 
     str.erase(0, 1);
     str.erase(str.size() - 1, 1);
 
     cout << ">" << str << "<" <<   endl;   // после
   
   return 0;
}
0
Croessmah
Эксперт CЭксперт С++
13209 / 7480 / 841
Регистрация: 27.09.2012
Сообщений: 18,389
Записей в блоге: 3
Завершенные тесты: 1
05.03.2013, 11:38 #5
Убого:
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
#include <iostream>
#include <string>
#include <windows.h>
size_t Trim(std::string & str){
     size_t count=str.size();
     bool flag=true;
    for(std::string::iterator it=str.begin();it!=str.end();++it){
        if(!isspace(static_cast<unsigned char>(*it))){
            str.erase(str.begin(),it);
            flag=false;
            for(std::string::iterator nit=str.end()-1;nit>str.begin();--nit){
                if(isspace(static_cast<unsigned char>(*nit))){
                    str.erase(nit);
                }else{
                    break;
                }
            }
            break;
        }
     }
     if(flag)
         str.clear();
     return count-str.size();
}
 
 
int main()
{
    SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
    std::string str;
    std::cout << "Введите строку" << std::endl;
    std::getline(std::cin, str, '\n');
     size_t c=Trim(str);
    std::cout << str <<"\nУдалено: "<<c<<" пробела(ов)"<<std::endl;;
    system("pause");
    return EXIT_SUCCESS;
}
0
ForEveR
В астрале
Эксперт С++
7972 / 4734 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
05.03.2013, 11:50 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <boost/algorithm/string.hpp>
#include <iostream>
 
std::string trim(std::string s)
{
   boost::trim(s);
   return s;
}
 
int main()
{
   const std::string s = "  abc  ";
   std::cout << trim(s) << std::endl;
}
Это классический trim.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <boost/algorithm/string.hpp>
 
std::string trim(std::string s)
{
   boost::erase_first(s, " ");
   boost::erase_last(s, " ");
   return s;
}
 
int main()
{
   const std::string s = "  abc  ";
   std::cout << trim(s) << std::endl;
}
http://liveworkspace.org/code/1M2RII$2

По одному, с начала и конца.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 11:50
Привет! Вот еще темы с ответами:

Удаление пробелов - C++
Доброго времени суток ув. форумчане! Дали задание до 6.11, вчера вроде понял как делать, а сегодня что-то голова не варит. В общем сама...

удаление пробелов - C++
предложите 2 варианта функции, удаляющей из строки ведущие и концевые пробелы

Удаление пробелов - C++
Помогите пожалуйста доделать программу(удаление пробелов в начале и в конце строки). Само задание:Удаление лишних пробелов в строке...

Удаление пробелов - C++
Нужна программа , которая удаляет все пробелы в строке! Помогите пожалуйста!


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.03.2013, 11:50
Ответ Создать тему
Опции темы

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