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

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

Войти
Регистрация
Восстановить пароль
 
Slava_
4 / 4 / 1
Регистрация: 27.02.2013
Сообщений: 94
#1

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

24.04.2013, 04:21. Просмотров 371. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передвижение по строчке (C++):

Коментарии к каждой строчке - C++
Напишите пожалуйста коментарии к каждой строчке программы.. #include "stdafx.h" #include <iostream> using namespace std;...

Написать коментарии в каждой строчке - C++
Напишите пожалуйста коментарии к каждой строке. #include <iostream> int main() { int n = 123405; int prois...

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

Передвижение стрелками - C++
Как переключаться между элементами списка в консоли с помощью стрелок? И если кто знает подскажите где можно обучиться делать оконные...

Передвижение курсора в c++ - C++
Здравствуйте, Я начал писать небольшую программу которая должна выполнять заданный алгоритм действий. Суть в чем: 1)Ищем например...

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

7
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,362
Завершенные тесты: 1
24.04.2013, 09:07 #2
не понятно, что надо было сделать.
Удалить пробелы?
Тогда надо символы, которые после пробела двигать влево
(++ch перемещает указатель, а символы остаются на месте).
text[ch-text] = '\0'; это то же самое, что и
(*ch)=0;
1
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2013, 16:45
Привет! Вот еще темы с ответами:

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

Передвижение курсора - C++
Необходимо осуществить передвижение курсора с возможностью приостановки и возобновления.Как сделать например если нажать клавишу влево...

Передвижение обьекта - C++
Нужно написать программу передвижения обьекта.Программа показывает поле XXXXX XIOOX XOOOX XOOOX XOOOX XOOOX XXXXX I-обьект ...

Передвижение по строке - C++
Здравствуйте, есть такая проблемка: Вот например есть строка: char* string = &quot;Text=Text2&quot;; Чтобы пробежаться по символам и найти знак...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
24.04.2013, 16:45
Ответ Создать тему
Опции темы

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