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

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

Войти
Регистрация
Восстановить пароль
 
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
#1

Удалить начальные пробелы в !символьном массиве (типа char) - C++

10.04.2013, 19:48. Просмотров 975. Ответов 2
Метки нет (Все метки)

Дается символьный массив, надо удалить в нём начальные пробелы.
Мне нужен хотя бы алгоритм, никак не могу правильно построить цикл...

Сделал с помощью указателей, но хочу сделать с помощью одной строки(ну или двух, с помощью перезаписывания)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[30], *str1;
    int i;
    cout << "Введите строку: ";
    gets(str);
    cout << "Введенная строка: " << str << "\n";
    str1=str;
    while(*str1==' ')
        ++str1;
    cout << "Преобразованная строка:" << str1;
    return 0;
}

Доработайте, пожалуйста, код

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
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    char str[30];
    int i;
    cout << "Введите строку: ";
    gets(str);
    cout << "Введенная строка: " << str << "\n";
    for (i=0; i<30; i++)
    {
        if (str[i]!=' ')
            break;
        if (str[i]==' ')
// что делать при этом условии ???
    }
    cout << "Преобразованная строка:" << str;
    return 0;
}
Добавлено через 10 минут
Везде задачи с этим условием решены для строки, которая объявляется как string, и соответственно, для неё уже есть специальные функции в библиотеке. А вот как это сделать для массива типа char ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 19:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить начальные пробелы в !символьном массиве (типа char) (C++):

Удалить из строки начальные пробелы - C++
задача №1 Написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы задача № 2 , ПравилаЗадача...

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

Удалить начальные пробелы из строки... - C++
Вот написал какой то бред, но почему то он не работает.... Недавно начал изучать с++ поэтому не кричите) using namespace std; ...

Удалить из введенной с клавиатуры строки начальные пробелы - C++
Помогите написать программу, которая удаляет из введенной с клавиатуры строки начальные пробелы на языке &quot;СИ&quot;

Удалить из введенной с клавиатуры строки начальные пробелы - C++
Собственно в написании такой програмулинки:которая удаляет из введенной с клавиатуры строки начальные пробелы. Полученная строка без...

Удалить начальные пробелы из введенной с клавиатуры строки - C++
Помогите написать программу для Microsoft Visual Studio Вот что надо сделать: Написать программу, которая удаляет начальные пробелы...

2
UnsKneD
алкокодер
154 / 150 / 11
Регистрация: 27.12.2012
Сообщений: 548
10.04.2013, 20:45 #2
Цитата Сообщение от Бедел Посмотреть сообщение
// что делать при этом условии ???
Циклический сдвиг влево.
1
Бедел
233 / 29 / 4
Регистрация: 04.06.2010
Сообщений: 286
11.04.2013, 02:06  [ТС] #3
Цитата Сообщение от UnsKneD Посмотреть сообщение
Циклический сдвиг влево.
Знать бы только как он осуществляется... Но и на этом спасибо, буду разбираться..

Добавлено через 2 часа 59 минут
Всё, разобрался... Полностью рабочий код:

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
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    const int n=30;
    setlocale(LC_ALL, "Russian");
    char str[n], r[1]={};
    int i;
    cout << "Введите строку: ";
    gets(str);
    cout << "Введенная строка: " << str << "\n";
    for (i=0; i<n; i++)
    {
        if (str[i]!=' ')
            break;
        if (str[i]==' ')
        {
            int k=0;
        for (int i=0; str[i]==' '; i++)
          if (str[i]==' ')
             k++;
            for (i=0; i<n; i++)
                str[i]=str[i+k];
        }
    }
    cout << "Преобразованная строка:" << str;
    return 0;
}
Добавлено через 5 минут
Может я слишком много намудрил, зато сделал сам !!!)))))))))))))))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2013, 02:06
Привет! Вот еще темы с ответами:

Интерполирующий поиск в массиве структур типа char - C++
Добрый вечер, дано задание сделать Интерполирующий поиск в массиве структур по полю char типа. Возможно ли вообще использовать...

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

Как удалить последние N элементов из массива типа char? - C++
Здравствуйте. Написал программу, но в ней маленький недочет-нужно удалить 3 последних символа &quot;___&quot;. В связи с этим вопрос, как удалить их?...

как поменять слова местами в массиве типа char? - C++
нужно поменять введенный текс в массиве типа char так, чтобы менялись местами два соседних слова.то есть первое со вторым .третье с...


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

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

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