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

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Fil
Сообщения: 41
Зарегистрирован: 30 авг 2006, 16:03

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

Сообщение Fil » 17 авг 2007, 14: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

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

Absurd
Сообщения: 1213
Зарегистрирован: 26 фев 2004, 13:24
Откуда: Pietari, Venäjä
Контактная информация:

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

Сообщение Absurd » 17 авг 2007, 15:18

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

Fil
Сообщения: 41
Зарегистрирован: 30 авг 2006, 16:03

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

Сообщение Fil » 19 авг 2007, 19:30

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

Ответить