这个程序是什么意思?

#include <iostream>
using std::cout;
using std::endl;

#include <string.h>

int main()
{
char sentence[] = "This is a sentence with 7 tokens";
char *tokenPtr;

cout << "The string to be tokenized is:\n" << sentence
<< "\n\nThe tokens are:\n\n";

tokenPtr = strtok( sentence, " " );

while ( tokenPtr != NULL )
{
cout << tokenPtr << '\n';
tokenPtr = strtok( NULL, " " );
}

cout << "\nAfter strtok, sentence = " << sentence << endl;
return 0;
}
里面的while循环是什么意思?NULL是什么?

首先要理解strtok这个函数。
它的作用是切割字符串。
本例中就是将字符串"This is a sentence with 7 tokens"以" "分解成多个字符串。
while循环的作用就是将分解后的字符串一一打印出来。
当函数strtok返回值为NULL的时候说明分解完毕,再没有符合条件的字符串了。所以while语句的中止条件就是(tokenPtr==NULL)了。
tokenPtr = strtok( NULL, " " ); 这条语句放在while循环里的作用就相当一直分解字符串。
如果lz对下面的程序理解了,我想您的问题也就解决啦。
char input[16] = "abc,d,ef";
char *p;
p = strtok(input,",");
if (p) printf("%s\n", p); //打印abc
p = strtok(NULL,",");
if (p) printf("%s\n", p); //打印d
p = strtok(NULL,",");
if (p) printf("%s\n", p); //打印ef

参考资料:http://baike.baidu.com/view/1028553.htm

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-24
NULL是指:指针"空"状态]

While循环的意思是:先输出tokenPtr,然后将tokenPtr值置为NULL.
第2个回答  2020-03-17
你这个程序的文件,损伤或者已经丢失,可以从装个软件试试,或者从别的朋友那里考个这个文件过来放在相应的目录里看看行不行。
电脑常识这个程序是什么意思?