Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Копирование строки указателями

5.4K
02 мая 2009 года
cursor
114 / / 05.01.2008
Здравствуйте. У меня такая проблема. Есть строка типа buff[] = "[asdf]";
Мне надо скопировать в строку CString status то, что между квадратными скобками, то есть "asdf". Делаю это так:

 
Код:
CString *p = &status;
char *p2 = &buff[1];

while(*p2 != ']')
    *(p++) = *(p2++);

вылетает с ошибкой. Помогите разобраться с работой с указателями. Спасибо
2.2K
02 мая 2009 года
REFOT
181 / / 08.04.2005
*(p++) - обрати внимание на это место )
Тут у тебя идёт перемещение не по массиву char, а по СString...
Т.е примерно так:
 
Код:
СString status[10];
CString* p = &status[0];
for(int i = 0; i < 10; i++)
   *(p++) = "Hello World";
5.4K
03 мая 2009 года
cursor
114 / / 05.01.2008
Цитата: REFOT
*(p++) - обрати внимание на это место )
Тут у тебя идёт перемещение не по массиву char, а по СString...
Т.е примерно так:
 
Код:
СString status[10];
CString* p = &status[0];
for(int i = 0; i < 10; i++)
   *(p++) = "Hello World";


не совсем то что мне нужно было. Из предыдущего кода: status это value-переменная static'a класс CString. Мне надо было из char buff[] = "[asdf]"; занести в CString текст между [ и ] т.е. из "[asdf]" сделать "asdf". Предыдуший код не помог, но сработало это

 
Код:
char* p2 = &buff[1];
    char buff2[200];
    memset(buff2, 0, 200);
    int i = 0;
    while(*p2 != ']') {
        buff2 = *p2;
        *p2++;
        i++;
    }
    status = buff2;

Почему не получалось сразу из указателя в указатель перемещать как я хотел в первом коде?
287
03 мая 2009 года
Shiizoo
958 / / 14.03.2004
Наверное, потому, что инкрементирование указателя на CString суть переход к следующему CString (а он один).
11
03 мая 2009 года
oxotnik333
2.9K / / 03.08.2007
а не легче скопировать весь буфер (вместе со скобками) в CString, а потом методами CString поудалять оттуда эти скобки?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог