С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/35: Рейтинг темы: голосов - 35, средняя оценка - 4.54
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90

Функция, которая удаляет начальные и конечные пробелы из строки

23.04.2014, 21:43. Показов 7146. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать функцию, которая удаляет начальные и конечные пробелы из строки, полученной в качестве аргумента

Добавлено через 1 час 33 минуты
Поможет кто с задачей, буду очень благодарен.
 Комментарий модератора 
Дублирование тем строго запрещено правилами форума.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2014, 21:43
Ответы с готовыми решениями:

Функция которая удаляет начальные и конечные пробелы из строки, полученной в качестве аргумента
Нужен код без использования strlen

Функция alltrim удаляет из строки начальные и конечные пробелы и возвращает указатель на преобразованную строку
Дали задание в ВУЗе. Назначение программы: Функция alltrim удаляет из строки начальные и конечные пробелы и возвращает указатель на...

Функция удаляет начальные пробелы из строки...
Написать функцию которая удаляет начальные пробелы из строки, полученной в качестве аргумента.. В паскале function LTrim(st:...

27
 Аватар для Komi
6 / 6 / 5
Регистрация: 10.08.2012
Сообщений: 82
23.04.2014, 21:52
какой тип у строки?

string
или
char[];

?
0
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
23.04.2014, 22:00  [ТС]
string
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
24.04.2014, 11:57
Пользуйтесь:
C++
1
2
3
4
5
6
    void func(std::string& str) {
        std::string::size_type idx_low   = str.find_first_not_of(" ");
        std::string::size_type idx_higth = str.find_last_not_of(" ");
 
        str = str.substr(idx_low, idx_higth - idx_low);
    }
2
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 12:30
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <boost/algorithm/string/trim.hpp>
 
int main()
{
   std::string str = "   Hello world    ";
   boost::algorithm::trim(str);
   std::cout << str;
 
   return 0;
}
0
 Аватар для Komi
6 / 6 / 5
Регистрация: 10.08.2012
Сообщений: 82
24.04.2014, 23:26
при получении аргумента string через стандартный ввод cin, пробелы не считываются.
C++
1
2
cin >> s;
//ввод "          stuff           "
s = "stuff"

собственно, зачем тебе такая программа?
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,026
Записей в блоге: 1
25.04.2014, 00:07
Цитата Сообщение от Anonim107 Посмотреть сообщение
string
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <algorithm>
 
 
bool notSpace ( char x )
{
   return !isspace(x) ;
}
 
int main ( ) {
   std::string str ;
   std::getline ( std::cin , str ) ;
   str.erase ( str.begin() , std::find_if ( str.begin() , str.end() , notSpace ) ) ;
   str.erase ( std::find_if ( str.rbegin() , str.rend() , notSpace ).base() , str.end() ) ;
   std::cout << "\nnew string->" << str <<std::endl ;
}
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
13.05.2014, 03:16
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
#include <iostream>
#include <cstring>
 
using namespace std;
void trim(char* arr)
{
    int size = strlen(arr);
 
    int counter = 0;
    for(int i=size-1;i>1;i--)
    {
        counter++;
        if(*(arr+i) != ' ')
        {
            *(arr+i+1) = '\0';
            break;
        }
    }
    int counter_2 = 0;
    for(int i=0; i<size-counter;i++)
    {
        
        if(*(arr+i) != ' ')
        {
            if(counter_2 > 0)
            {
                for(int i=0;i<size-counter;i++)
                {
                    *(arr+i) = *(arr+i+counter_2);
                }
            *(arr+size-counter-counter_2+1) = '\0';
            
            
            }
            break;
        }
        counter_2++;
    }
    
}
void main ()
{
    char* text = new char[255];
    strcpy(text, "       Privet kak dela                    ");
    trim(text);
    cout << text;
}
1
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
13.05.2014, 03:26
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
#include <iostream>
 
void func(std::string str)
{
    int i = 0;
    while(str[i] == ' ')
        i++;
        
    str.replace(0, i, "");
    i = str.size();
    
    while(str[i] == ' ')
        i--;
        
    str.replace(i, str.size() - 1, "");
    std::cout << str << std::endl;
}
 
int main()
{
    std::string str;
    std::cout << "Type text: ";
    getline(std::cin, str);
    func(str);
    
    system("pause");
    return 0;
}
1
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
13.05.2014, 03:27  [ТС]
Спасибо вам, очень благодарен
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2223 / 1425 / 420
Регистрация: 16.05.2013
Сообщений: 3,642
Записей в блоге: 6
13.05.2014, 08:47
Где-то это уже было https://www.cyberforum.ru/post6081601.html
0
0 / 0 / 4
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 17:52
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 "stdafx.h"
#include "iostream"
using namespace std;
 
void ydalenie(static char str[])
{ int i, d=0, k;
    for(i=0; str[i]==' ';  i++){} // определяем количество пробелов впереди
        for(k=0; k<strlen(str); k++) // сдвигаем все элементы массива влево на i(количество пробелов впереди)
            str[k]=str[k+i];
    for(k=strlen(str); str[k]==' '; k--, d++){} // определяем количество пробелов в конце(d)
        for(k=0; k<strlen(str)-d-i; k++)     // выводим нужнуе нам элементы, без пробелов
            printf("%c", str[k]);  
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    char str[10] = {" "" ""d""s""a""r""e"" "" "}; // создаём строку, которую нужно отредактировать
    ydalenie(str);
    printf("\n");
    return 0;
}
Если я правильно понял задание, то вот его решение
0
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
18.05.2014, 18:27  [ТС]
Спасибо за отзыв, но программа не запускается, я не могу в консоли ничего писать.
0
0 / 0 / 4
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 19:03
На что именно ругается?
В моей программе строка уже введена в 19 строке кода
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
18.05.2014, 19:17
Конфликт в IDE скорее всего. Уберите #include "stdafx.h"
и вместо int _tmain(int argc, _TCHAR* argv[]) используйте main() без аргументов.
Если исчезает консоль getch(); из #include <conio.h> или system("pause");
1
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
18.05.2014, 21:04  [ТС]
Предупреждение 1 warning C4042: str: имеет недопустимый класс хранения c:\users\nikita\documents\visual studio 2013\projects\consoleapplication39\conso leapplication39\consoleapplication39.cpp 9 1 ConsoleApplication39


Предупреждение 2 warning C4018: <: несоответствие типов со знаком и без знака c:\users\nikita\documents\visual studio 2013\projects\consoleapplication39\conso leapplication39\consoleapplication39.cpp 13 1 ConsoleApplication39


Предупреждение 3 warning C4018: <: несоответствие типов со знаком и без знака c:\users\nikita\documents\visual studio 2013\projects\consoleapplication39\conso leapplication39\consoleapplication39.cpp 16 1 ConsoleApplication39


Ошибка 4 error C2084: функция "int wmain(int,_TCHAR *[])" уже имеет текст реализации c:\users\nikita\documents\visual studio 2013\projects\consoleapplication39\conso leapplication39\consoleapplication39.cpp 31 1 ConsoleApplication39


Вот на это ругается в вашей программе, исправьте пожалуйста=)

Добавлено через 1 час 8 минут
Может кто помочь с программой
0
0 / 0 / 4
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 22:04
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
#include "iostream"
using namespace std;
 
void ydalenie(static char str[])
{ int i, d=0, k;
    for(i=0; str[i]==' ';  i++){} // определяем количество пробелов впереди
        for(k=0; k<10-i; k++) // сдвигаем все элементы массива влево на i(количество пробелов впереди)
            str[k]=str[k+i];
    for(k=9-i; str[k]==' '; k--, d++){} // определяем количество пробелов в конце(d)
        for(k=0; k<10-d-i; k++)     // выводим нужные нам элементы, без пробелов
            printf("%c", str[k]);
        printf("*"); // *конец строки
}
 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
    char str[10];// создаём строку, которую нужно отредактировать
    printf("Введите строку из 10 элементов, считая пробелы:\n");
    scanf("%10c", &str);    
    ydalenie(str);
    printf("\n");
    return 0;
}
вот рабочий код, в который нужно вводить строку из 10 элементов и на выходе получаем строку без пробелов в начала и конце

Добавлено через 3 минуты
Цитата Сообщение от GuGo1991 Посмотреть сообщение
Если исчезает консоль getch(); из #include <conio.h> или system("pause");
так делать не стоит, если запустить программу Ctrl+F5, программа отработает и не закроется, в если она закрывается значит вы просто запускаете отладку программы вместо её выполнения
0
272 / 266 / 146
Регистрация: 02.08.2012
Сообщений: 609
18.05.2014, 22:10
kompromiss, смотря где. Я не работаю в VS.
0
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
18.05.2014, 22:14  [ТС]
Предупреждение 1 warning C4042: str: имеет недопустимый класс хранения c:\users\nikita\documents\visual studio 2013\projects\consoleapplication46\conso leapplication46\consoleapplication46.cpp 8 1 ConsoleApplication46




Ошибка 2 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\nikita\documents\visual studio 2013\projects\consoleapplication46\conso leapplication46\consoleapplication46.cpp 27 1 ConsoleApplication46



Ошибка 3 error C2084: функция "int wmain(int,_TCHAR *[])" уже имеет текст реализации c:\users\nikita\documents\visual studio 2013\projects\consoleapplication46\conso leapplication46\consoleapplication46.cpp 35 1 ConsoleApplication46

kompromiss я программу запустил и мне выдает ошибки, помогите справить.
0
0 / 0 / 4
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 22:22
Цитата Сообщение от Anonim107 Посмотреть сообщение
"int wmain(int,_TCHAR *[])"
Такой функции вообще в моём коде нету
пробуйте заменить
C++
1
int _tmain(int argc, _TCHAR* argv[])
на
C++
1
int main()
и в заголовке дописать
C++
1
#include "stdafx.h"
если не сработает то ставьте 2010 студию, тут таких ошибок не возникает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.05.2014, 22:22
Помогаю со студенческими работами здесь

Программа, которая удаляет из введенной с клавиатуры строки начальные пробелы
программу, которая удаляет из введенной с кла¬виатуры строки начальные пробелы.

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru