Здравствуйте!
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
Пожалуйста, подскажите, где тут ошибка? Как можно исправить?
Спасибо.
Работа с массивом в strtok(...)
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
-
- Сообщения: 1213
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
Поищи в гугле "C++ strtok replacement" - первая же ссылка даст результат.
Я могу использовать strtok если я делаю консольное приложение на Pure C и знаю точно как он работет и что мне нужно. Тебе не рекоммендую.
Я могу использовать strtok если я делаю консольное приложение на Pure C и знаю точно как он работет и что мне нужно. Тебе не рекоммендую.
2B OR NOT(2B) = FF
Что ты мне не рекомендуешь, я понял. А что порекомендуешь? Чем заменить strtok? Какой ф-ей или способом разбить на лексемы предложение?