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

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

Восстановить пароль Регистрация
 
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
10.04.2013, 19:48     Удалить начальные пробелы в !символьном массиве (типа char) #1
Дается символьный массив, надо удалить в нём начальные пробелы.
Мне нужен хотя бы алгоритм, никак не могу правильно построить цикл...

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

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 ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 19:48     Удалить начальные пробелы в !символьном массиве (типа char)
Посмотрите здесь:

как поменять слова местами в массиве типа char? C++
Удалить начальные пробелы из строки... C++
C++ Удалить из строки начальные пробелы
C++ Как удалить последние N элементов из массива типа char?
C++ Интерполирующий поиск в массиве структур типа char
C++ Как найти заданный элемент (типа char) в массиве структур?
C++ Удалить начальные пробелы из введенной с клавиатуры строки
C++ Найти количество чисел в массиве типа char

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
10.04.2013, 20:45     Удалить начальные пробелы в !символьном массиве (типа char) #2
Цитата Сообщение от Бедел Посмотреть сообщение
// что делать при этом условии ???
Циклический сдвиг влево.
Бедел
 Аватар для Бедел
232 / 28 / 4
Регистрация: 04.06.2010
Сообщений: 283
11.04.2013, 02:06  [ТС]     Удалить начальные пробелы в !символьном массиве (типа char) #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 минут
Может я слишком много намудрил, зато сделал сам !!!)))))))))))))))
Yandex
Объявления
11.04.2013, 02:06     Удалить начальные пробелы в !символьном массиве (типа char)
Ответ Создать тему
Опции темы

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