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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Anonim107
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
23.04.2014, 21:43     Функция, которая удаляет начальные и конечные пробелы из строки #1
Написать функцию, которая удаляет начальные и конечные пробелы из строки, полученной в качестве аргумента

Добавлено через 1 час 33 минуты
Поможет кто с задачей, буду очень благодарен.
 Комментарий модератора 
Дублирование тем строго запрещено правилами форума.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2014, 21:43     Функция, которая удаляет начальные и конечные пробелы из строки
Посмотрите здесь:

C++ Функция alltrim удаляет из строки начальные и конечные пробелы и возвращает указатель на преобразованную строку
C++ написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы
Функция удаляет начальные пробелы из строки... C++
Написать программу, которая удаляет конечные пробелы из введенной с клавиатуры строки C++
C++ Написать программу, которая удаляет из введенной с клавиатуры строки конечные пробелы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
23.04.2014, 21:52     Функция, которая удаляет начальные и конечные пробелы из строки #2
какой тип у строки?

string
или
char[];

?
Anonim107
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
23.04.2014, 22:00  [ТС]     Функция, которая удаляет начальные и конечные пробелы из строки #3
string
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
24.04.2014, 11:57     Функция, которая удаляет начальные и конечные пробелы из строки #4
Пользуйтесь:
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);
    }
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
24.04.2014, 12:30     Функция, которая удаляет начальные и конечные пробелы из строки #5
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;
}
Komi
 Аватар для Komi
6 / 6 / 2
Регистрация: 10.08.2012
Сообщений: 82
24.04.2014, 23:26     Функция, которая удаляет начальные и конечные пробелы из строки #6
при получении аргумента string через стандартный ввод cin, пробелы не считываются.
C++
1
2
cin >> s;
//ввод "          stuff           "
s = "stuff"

собственно, зачем тебе такая программа?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
25.04.2014, 00:07     Функция, которая удаляет начальные и конечные пробелы из строки #7
Цитата Сообщение от 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 ;
}
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
13.05.2014, 03:16     Функция, которая удаляет начальные и конечные пробелы из строки #8
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;
}
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
13.05.2014, 03:26     Функция, которая удаляет начальные и конечные пробелы из строки #9
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;
}
Anonim107
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
13.05.2014, 03:27  [ТС]     Функция, которая удаляет начальные и конечные пробелы из строки #10
Спасибо вам, очень благодарен
Ilot
Модератор
Эксперт С++
1765 / 1140 / 221
Регистрация: 16.05.2013
Сообщений: 3,017
Записей в блоге: 5
Завершенные тесты: 1
13.05.2014, 08:47     Функция, которая удаляет начальные и конечные пробелы из строки #11
Где-то это уже было Функция, которая удаляет начальные и конечные пробелы из строки
kompromiss
0 / 0 / 3
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 17:52     Функция, которая удаляет начальные и конечные пробелы из строки #12
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;
}
Если я правильно понял задание, то вот его решение
Anonim107
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
18.05.2014, 18:27  [ТС]     Функция, которая удаляет начальные и конечные пробелы из строки #13
Спасибо за отзыв, но программа не запускается, я не могу в консоли ничего писать.
kompromiss
0 / 0 / 3
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 19:03     Функция, которая удаляет начальные и конечные пробелы из строки #14
На что именно ругается?
В моей программе строка уже введена в 19 строке кода
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
18.05.2014, 19:17     Функция, которая удаляет начальные и конечные пробелы из строки #15
Конфликт в IDE скорее всего. Уберите #include "stdafx.h"
и вместо int _tmain(int argc, _TCHAR* argv[]) используйте main() без аргументов.
Если исчезает консоль getch(); из #include <conio.h> или system("pause");
Anonim107
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
18.05.2014, 21:04  [ТС]     Функция, которая удаляет начальные и конечные пробелы из строки #16
Предупреждение 1 warning C4042: str: имеет недопустимый класс хранения c:\users\nikita\documents\visual studio 2013\projects\consoleapplication39\consoleapplication39\consoleapplication39.cpp 9 1 ConsoleApplication39


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


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


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


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

Добавлено через 1 час 8 минут
Может кто помочь с программой
kompromiss
0 / 0 / 3
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 22:04     Функция, которая удаляет начальные и конечные пробелы из строки #17
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, программа отработает и не закроется, в если она закрывается значит вы просто запускаете отладку программы вместо её выполнения
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
18.05.2014, 22:10     Функция, которая удаляет начальные и конечные пробелы из строки #18
kompromiss, смотря где. Я не работаю в VS.
Anonim107
-22 / 0 / 0
Регистрация: 02.12.2013
Сообщений: 90
18.05.2014, 22:14  [ТС]     Функция, которая удаляет начальные и конечные пробелы из строки #19
Предупреждение 1 warning C4042: str: имеет недопустимый класс хранения c:\users\nikita\documents\visual studio 2013\projects\consoleapplication46\consoleapplication46\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\consoleapplication46\consoleapplication46.cpp 27 1 ConsoleApplication46



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

kompromiss я программу запустил и мне выдает ошибки, помогите справить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.05.2014, 22:22     Функция, которая удаляет начальные и конечные пробелы из строки
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
kompromiss
0 / 0 / 3
Регистрация: 17.05.2014
Сообщений: 19
18.05.2014, 22:22     Функция, которая удаляет начальные и конечные пробелы из строки #20
Цитата Сообщение от Anonim107 Посмотреть сообщение
"int wmain(int,_TCHAR *[])"
Такой функции вообще в моём коде нету
пробуйте заменить
C++
1
int _tmain(int argc, _TCHAR* argv[])
на
C++
1
int main()
и в заголовке дописать
C++
1
#include "stdafx.h"
если не сработает то ставьте 2010 студию, тут таких ошибок не возникает
Yandex
Объявления
18.05.2014, 22:22     Функция, которая удаляет начальные и конечные пробелы из строки
Ответ Создать тему
Опции темы

Текущее время: 02:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru