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

Передвижение по строчке - C++

Восстановить пароль Регистрация
 
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 91
24.04.2013, 04:21     Передвижение по строчке #1
Проблема такова:
есть строчка:
C
1
char* text = "text1     text2";
Я ищу первый пробел:
C
1
2
char* ch;
ch = strchr(text, ' ');
Потом обрезаю оставшиеся пробелы, чтобы остался только нормальный тест:
C
1
2
3
4
5
if(ch!=NULL)
{
text[ch-text] = '\0';
while(*ch == ' ') {++ch;}//Вот тут передвижение
}
После того цикла, массив ch остается пустым(
Что тут не так?

Добавлено через 10 часов 28 минут
......
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 04:21     Передвижение по строчке
Посмотрите здесь:

Передвижение обьекта C++
C++ Передвижение стрелками
Написать коментарии в каждой строчке C++
C++ Коментарии к каждой строчке
C++ Передвижение по строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
24.04.2013, 09:07     Передвижение по строчке #2
не понятно, что надо было сделать.
Удалить пробелы?
Тогда надо символы, которые после пробела двигать влево
(++ch перемещает указатель, а символы остаются на месте).
text[ch-text] = '\0'; это то же самое, что и
(*ch)=0;
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.04.2013, 11:00     Передвижение по строчке #3
Цитата Сообщение от Slava_ Посмотреть сообщение
массив ch остается пустым
ch это не массив, а указатель.
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 91
24.04.2013, 14:11  [ТС]     Передвижение по строчке #4
Цитата Сообщение от Tulosba Посмотреть сообщение
ch это не массив, а указатель.
Точно. Т.е. нужно создать массив и подставить к нему этот указатель?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.04.2013, 14:46     Передвижение по строчке #5
Цитата Сообщение от Slava_ Посмотреть сообщение
нужно создать массив и подставить к нему этот указатель?
Зависит от того, какая задача стоит. Сформировать строку, в которой нет лишних пробелов или просто вывести без пробелов?
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 91
24.04.2013, 15:33  [ТС]     Передвижение по строчке #6
Цитата Сообщение от Tulosba Посмотреть сообщение
Зависит от того, какая задача стоит. Сформировать строку, в которой нет лишних пробелов или просто вывести без пробелов?
Вывести оставшийся текст без первых пробелов, а остальные пробелы, которые после текста, оставить.

C
1
2
 |обрезать|
"         text2 text3"
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.04.2013, 15:46     Передвижение по строчке #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <string>
#include <algorithm>
#include <functional>
#include <cctype>
#include <iostream>
 
std::string &ltrim(std::string &s) {
        s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace))));
        return s;
}
 
void main(){
 
    std::string s = "         text2 text3";
 
    std::cout << ltrim( s ) << std::endl;
 
    system( "pause" );
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 16:45     Передвижение по строчке
Еще ссылки по теме:

C++ Передвижение курсора в c++
Передвижение шарика C++
Передвижение курсора C++

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

Или воспользуйтесь поиском по форуму:
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 91
24.04.2013, 16:45  [ТС]     Передвижение по строчке #8
Спасибо огромное, надо будет алгоритмы подучить
Yandex
Объявления
24.04.2013, 16:45     Передвижение по строчке
Ответ Создать тему
Опции темы

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