c的strtok用法,result = strtok( NULL, delims )理解不了啊
发布网友
发布时间:2022-04-28 12:16
我来回答
共3个回答
热心网友
时间:2023-10-09 00:52
首次调用result = strtok( str, delims );时,内部有个static char *result指针指向了str
运行后result指向了now后的#
之后的循环
result = strtok( NULL, delims );
可以看成if 参数==NULL 仍然使用上次的#位置(存在静态变量中)开始继续找,直到找到下一个分隔符#。
反复以NULL做参数,找到输出所有的#
热心网友
时间:2023-10-09 00:52
第一次调用
result = strtok( str, delims );
且正确返回的时候,strtok函数会保存str的备份。不用关心具体实现,可以想象作strtok把你传入的str复制到了某个静态数组中。
以后每次调用
result = strtok( NULL, delims );
表示继续之前未完成的分割过程。
热心网友
时间:2023-10-09 00:52
首次调用result = strtok( str, delims );时,内部有个static char *result指针指向了str
运行后result指向了now后的#
之后的循环
result = strtok( NULL, delims );
可以看成if 参数==NULL 仍然使用上次的#位置(存在静态变量中)开始继续找,直到找到下一个分隔符#。
反复以NULL做参数,找到输出所有的#
热心网友
时间:2023-10-09 00:53
焦炭力量[]= "现在是时候让所有# #好男人来#援助他们的国家”;
焦炭delims[]= " # ";
由于炭* =空;
结果=函数,delimsⅱ);
当结果!= NULL){
函数”结果是\ " % s \ " \ n”,结果);
函数的作用是:将结果=(NULL,delims);
}
输出:
结果是“现在”
结果是“是”
结果是“好男人来”
结果是“援助的国家”
热心网友
时间:2023-10-09 00:52
第一次调用
result = strtok( str, delims );
且正确返回的时候,strtok函数会保存str的备份。不用关心具体实现,可以想象作strtok把你传入的str复制到了某个静态数组中。
以后每次调用
result = strtok( NULL, delims );
表示继续之前未完成的分割过程。
热心网友
时间:2023-10-09 00:53
焦炭力量[]= "现在是时候让所有# #好男人来#援助他们的国家”;
焦炭delims[]= " # ";
由于炭* =空;
结果=函数,delimsⅱ);
当结果!= NULL){
函数”结果是\ " % s \ " \ n”,结果);
函数的作用是:将结果=(NULL,delims);
}
输出:
结果是“现在”
结果是“是”
结果是“好男人来”
结果是“援助的国家”