0
Я пытаюсь написать программу, которая будет анализировать строку и давать каждую позицию слова. Я не могу понять, почему я получаюInvalid null pointer
«DEBUG Assertion Failed» Experssion: недопустимый указатель нулевого
окна, когда он достигает последнее слово строки.
char * pointer_char;
int pos = 0;
std::string str = "This test string will fail at this word..!. ";
int i = 0;
int length = str.length();
char * c = new char [str.size()+1];
std::copy(str.begin(), str.end(), c);
c[str.size()] = '\0';
cout << "Testing string is " << str << endl << endl;
pointer_char = strtok (c," ");
while(pointer_char != NULL)
{
cout << pointer_char << endl;
pointer_char = strtok(NULL, " .!");
string word = pointer_char;
size_t found= str.find(word);
if (found!=string::npos)
cout << "Position of " << word << " found at: " << int(found) << endl;
system("pause");
}
return 0;
Ваше продолжение 'strtok()' немного преждевременно. Он должен быть на * дне * вашего цикла; не верх. – WhozCraig