Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
3 / 3 / 3
Регистрация: 18.11.2014
Сообщений: 32

Убрать пробелы в конце строки

25.05.2015, 14:21. Показов 3209. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Условие : Опишите функцию, удаляющую в строке все начальные и все конечные пробелы.
Все начальные пробелы убрать у меня получилось. А как убрать ещё и конечные?
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <conio.h>
#include <iostream>
using namespace std;
void remove_space(char *a)
{
    int n;
    for(n=0; a[n]; n++); // 
}
int _tmain(int argc, _TCHAR* argv[])
{
 
 
    char str[]="      water gets warmer        ";
    cout<<str<<endl;
    remove_space(str);
    cout<<str<<endl;
 
    while (a[0]==" ")
    {
        for (j=0; j<n; j++)
            a [j] = a[j+1]
        n-- ;
    }
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.05.2015, 14:21
Ответы с готовыми решениями:

Переписать все строки файла удаляя пробелы в конце каждой строки
Дан текстовый файл F.txt. Переписать все строки файла F.txt в файл G.txt, удаляя все пробелы в конце каждой строки файла-источника.

Обрезать пробелы в конце строки.
Задача образеть пробелы в конце строки(строка может быть очень большой). Строка передаётся в функцию void TrimRight( char *s ), нужно...

Удалить пробелы в начале и конце строки
Удалить группу пробелов, с которых, возможно начинается и заканчивается строка строки читаются из файла и выводятся в файл Разрешено...

7
Dimension
595 / 463 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
25.05.2015, 14:23
можете сделать тоже самое только с конца строки
0
 Аватар для dcStep
41 / 41 / 36
Регистрация: 13.04.2015
Сообщений: 83
25.05.2015, 15:20
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
#include <iostream>
#include <cctype>
 
using namespace std;
 
string removeSpace(string& text) {
    string buffer;
    bool flag = false;
    
    for ( int i = 0; text[i] != 0; i++ ) {
        while ( flag == false && isspace(text[i]) ) {
            i++;
        }
        flag = true;
        buffer += text[i];
    }
    
    for ( int i = buffer.size()-1; buffer[i] >= 0; i-- ) {
        while ( isspace(buffer[i]) ) {
            i--;
        }
        buffer.erase(i+1);
        break;
    }
 
    return buffer;
}
 
int main() {
    string text = "        water gets warmer        ";
    
    cout << removeSpace(text) << endl;
    
    return 0;
}
0
 Аватар для Leonman
15 / 15 / 4
Регистрация: 17.06.2012
Сообщений: 274
25.05.2015, 15:48
Вот вариант с boost`ом:
C++
1
2
3
4
5
6
7
8
9
#include <boost/algorithm/string/trim.hpp>
 
int main()
{
    std::string str = "      water gets warmer        ";
    boost::trim(str);
 
    return 0;
}
0
3 / 3 / 3
Регистрация: 18.11.2014
Сообщений: 32
25.05.2015, 21:17  [ТС]
dcStep, код выдает ошибку в этих строках:
C++
1
2
for ( int i = 0; text[i] != 0; i++ ) //идентификатор  text не определен
 return buffer; //не существует подходящей функции преобразования из 'std::string' в 'int'
0
 Аватар для dcStep
41 / 41 / 36
Регистрация: 13.04.2015
Сообщений: 83
25.05.2015, 22:55
Цитата Сообщение от HershE Посмотреть сообщение
код выдает ошибку в этих строках
Это уже нюансы компилятора, здесь работает http://ideone.com/t4SHfb
Попробуй тогда явно указывать std:
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <cctype>
#include <cstring>
 
std::string removeSpace(std::string& text) {
    std::string buffer;
    bool flag = false;
    
    for ( int i = 0; text[i] != 0; i++ ) {
        while ( flag == false && isspace(text[i]) ) {
            i++;
        }
        flag = true;
        buffer += text[i];
    }
    
    for ( int i = buffer.size()-1; buffer[i] >= 0; i-- ) {
        while ( isspace(buffer[i]) ) {
            i--;
        }
        buffer.erase(i+1);
        break;
    }
 
    return buffer;
}
 
int main() {
    std::string text = "        water gets warmer        ";
    
    std::cout << removeSpace(text) << std::endl;
    
    return 0;
}
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
26.05.2015, 10:12

Не по теме:

Ужасы какие


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
    char str[]="      water gets warmer        ";
    while (isspace(str[strlen(str)-1]))    str[strlen(str)-1]=0;
 
    int i=0;
    while (isspace(str[i])) i++;
 
    strcpy(str,(char*) str+i);
   cout<<str<<"TTTTT"; //Для убедительности, что в конце нет пробелом дописываем ТТТТ в конец, должно слиться со строкой
 
    return 0;
}
Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <string.h>
using namespace std;
 
void mytrim(char *str){
    while (isspace(str[strlen(str)-1]))    str[strlen(str)-1]=0;
 
    int i=0;
    while (isspace(str[i])) i++;
 
    strcpy(str,(char*) str+i);
}
 
int main()
{
    char str[]="                water gets warmer        ";
      mytrim(str);
  cout<<str<<"\n";
 
 
    return 0;
}
1
3 / 3 / 3
Регистрация: 18.11.2014
Сообщений: 32
26.05.2015, 10:47  [ТС]
dcStep, спасибо

Добавлено через 21 секунду
daslex, спасибо за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.05.2015, 10:47
Помогаю со студенческими работами здесь

Функция удаляющая пробелы в начале и в конце строки
Разработайте функцию std::string TrimBlanks(std::string const&amp; str), выполняющую отрезание пробелов в начале и в конце строки str, и...

функция, которая обрезает пробелы в конце переданной ей строки
Ребята, здравствуйте, Подскажите, пожалуйста, как написать функцию (на С/С++), которая обрезает пробелы в конце переданной ей строки. ...

Написать функцию, которая отсекает пробелы, находящиеся в конце строки
Помогите написать программу, для меня она показалось очень тяжелой, такое примечание меня испугало и я не знаю как это сделать... Буду...

Во введенной пользователем строке удалите все пробелы в начале и конце строки
Во введенной пользователем строке удалите все пробелы в начале и конце строки. Я ищу первый индекс символа не равного пробелу и с конца...

Убрать мусор в конце строки
после произвольных символов букв выводится (эээээ&lt;&lt;&lt;&lt;&lt;юоюою) for (int k = 0; k &lt; 10; k++) { int x = (int)rand() / RAND_MAX +...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru