c ++函数, strtok() cplusplus.com
如果 str 未正确终止,此示例是否会受到缓冲区溢出的影响?
/* strtok example */
/* source - cplusplus.com (see link below) */
#include <stdio.h>
#include <string.h>
int main ()
{
char str[] ="- This, a sample string.";
char * pch;
printf ("Splitting string \"%s\" into tokens:\n",str);
pch = strtok (str," ,.-");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, " ,.-"); // walk the stack?
}
return 0;
}
如果使用“\ 0”未正确终止 str ,则无法
pch = strtok (NULL, " ,.-");
走栈?
谢谢!
答案 0 :(得分:1)
如果字符串不是以空值终止的,那么大多数字符串处理函数都将离开末尾。
但是,在您的代码示例中,str
已终止。