Я взял все txt из файла и поместил строку за строкой в массив строки. Я пытаюсь разбить эту строку, чтобы я мог сохранять слово за словом в отдельном массиве. Пожалуйста, просто скажите мне, как оболочка i преобразует массив строки в char.преобразовать массив sting в char
, например
string line[15]; // line[0] has : was there before
// line[1] has : then after
char * pch;
char *c = line.c_str(); // string to char (i am getting error here. Any body know?)
pch = strtok (c," ");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ");
}
ошибка: C2228: слева от '.c_str' должен иметь класс/структуры/объединения
'line' является не строка. Это массив строк. Вы могли бы сделать 'line [0] .c_str()'. Вам также понадобится использовать 'const char * pch;' или вы получите еще одну ошибку. –
'line' - это массив. Это не 'class/struct/union'. Возможно, вы имели в виду (например) 'char * c = line [0] .c_str();'? Кроме того, вы можете написать свою собственную функцию токена, которая работает с 'std :: string', вместо использования старых c-функций. – clcto
Чтобы добавить к моему последнему комментарию, я написал функцию «tokenize» a назад, которую можно найти по адресу https://github.com/clcto/utile/blob/master/src/utile.cpp line 235 – clcto