Работа с массивом в strtok(...)

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Работа с массивом в strtok(...)

Re: Работа с массивом в strtok(...)

Fil » 19 авг 2007, 20:30

Что ты мне не рекомендуешь, я понял. А что порекомендуешь? Чем заменить strtok? Какой ф-ей или способом разбить на лексемы предложение?

Re: Работа с массивом в strtok(...)

Absurd » 17 авг 2007, 16:18

Поищи в гугле "C++ strtok replacement" - первая же ссылка даст результат.
Я могу использовать strtok если я делаю консольное приложение на Pure C и знаю точно как он работет и что мне нужно. Тебе не рекоммендую.

Работа с массивом в strtok(...)

Fil » 17 авг 2007, 15:21

Здравствуйте!

CString m_z=”Мама мыла раму”;
CString m_istr, m_leks;
char *m_leksema_z, *m_ed_z;
char *a_leksema[100], *a_leksema_istr;
int result[100];
int l;
……………………………………
m_ed_z=(char*)(LPCTSTR)m_z;

m_leksema_z = strtok(m_ed_z, seps);
while(m_leksema_z != NULL)
{
a_leksema=m_leksema_z;

l++;
result=l;
m_istr.Format("%i", result);
m_leks=m_leksema_z;
a_leksema_istr=(char*)(LPCTSTR)(m_leks+=m_istr);
i++;

m_leksema_z = strtok(NULL, seps);
}

С массивом a_leksema все нормально, т.е.:
i=0 – мама
i=1 – мыла
i=2 – раму

С массивом a_leksema_istr так, т.е.:
i=0 – мама1
на др. «круге» цикла:
i=0 – мыла2
i=1 – мыла2
еще на др. «круге» цикла:
i=0 – раму3
i=1 – раму3
i=2 – раму3

Необходимо, что бы было:
i=0 – мама1
i=1 – мыла2
i=2 – раму3

Пожалуйста, подскажите, где тут ошибка? Как можно исправить?
Спасибо.

Вернуться к началу