Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Viktor111
0 / 0 / 0
Регистрация: 18.12.2012
Сообщений: 33
1

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

05.03.2013, 10:52. Просмотров 2585. Ответов 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
Ответы с готовыми решениями:

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

Удаление пробелов в введенной строке
Вот я думаю надо так,но не получается //Удаление пробелов в строке...

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

Работа со строками: удаление пробелов и подсчет слов в строке
Дана строка слов. Сформируйте новую строку, удалив пробелы, с которых может...

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

5
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 / 1
Регистрация: 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
++Ͻ
14776 / 8452 / 1605
Регистрация: 27.09.2012
Сообщений: 20,800
Записей в блоге: 2
Завершенные тесты: 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
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 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
05.03.2013, 11:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2013, 11:50

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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