Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
1

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

24.04.2013, 04:21. Просмотров 403. Ответов 7
Метки нет (Все метки)

Проблема такова:
есть строчка:
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 минут
......
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2013, 04:21
Ответы с готовыми решениями:

Коментарии к каждой строчке
Напишите пожалуйста коментарии к каждой строчке программы.. #include...

написать комментарий к каждой строчке
#include <iostream> using namespace std; int main() { float array,...

Написать коментарии в каждой строчке
Напишите пожалуйста коментарии к каждой строке. #include <iostream> ...

Немогу разобраться в строчке кода!
Программисты помогите понять эту строку кода while(b) b^=a^=b^=a%=b; Что...

Передвижение стрелками
Как переключаться между элементами списка в консоли с помощью стрелок? И если...

7
zss
Модератор
Эксперт С++
7383 / 6781 / 4292
Регистрация: 18.12.2011
Сообщений: 17,918
Завершенные тесты: 1
24.04.2013, 09:07 2
не понятно, что надо было сделать.
Удалить пробелы?
Тогда надо символы, которые после пробела двигать влево
(++ch перемещает указатель, а символы остаются на месте).
text[ch-text] = '\0'; это то же самое, что и
(*ch)=0;
1
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.04.2013, 11:00 3
Цитата Сообщение от Slava_ Посмотреть сообщение
массив ch остается пустым
ch это не массив, а указатель.
0
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
24.04.2013, 14:11  [ТС] 4
Цитата Сообщение от Tulosba Посмотреть сообщение
ch это не массив, а указатель.
Точно. Т.е. нужно создать массив и подставить к нему этот указатель?
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.04.2013, 14:46 5
Цитата Сообщение от Slava_ Посмотреть сообщение
нужно создать массив и подставить к нему этот указатель?
Зависит от того, какая задача стоит. Сформировать строку, в которой нет лишних пробелов или просто вывести без пробелов?
0
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
24.04.2013, 15:33  [ТС] 6
Цитата Сообщение от Tulosba Посмотреть сообщение
Зависит от того, какая задача стоит. Сформировать строку, в которой нет лишних пробелов или просто вывести без пробелов?
Вывести оставшийся текст без первых пробелов, а остальные пробелы, которые после текста, оставить.

C
1
2
 |обрезать|
"         text2 text3"
0
Tulosba
:)
Эксперт С++
4749 / 3243 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
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" );
}
1
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
24.04.2013, 16:45  [ТС] 8
Спасибо огромное, надо будет алгоритмы подучить
0
24.04.2013, 16:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 16:45

Передвижение объекта
Подскажите плиз Вводятся 3 числа. A, B, N. A - движение вперед, B - движение...

Передвижение курсора в c++
Здравствуйте, Я начал писать небольшую программу которая должна выполнять...

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


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

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

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