strtok循环体里嵌strcmp
#include "stdafx.h"
#include "string.h"
#include "stdio.h"
int main(int argc, char* argv[])
{
char str[] ="911|1234|0010";
char * pch;
printf ("Splitting string \"%s\" in tokens:\n",str);
pch = strtok (str,"|");
while (pch != NULL)
{
printf ("%s\n",pch);
pch = strtok (NULL, "|");
if(strcmp(pch,"88888") == 0)
{
break;
}
}
return 0;
}
当中,运行到if(strcmp(pch,"88888") == 0)出现错误,请各位帮忙分析下
[解决办法]
#include <string>#include <stdio.h>int main(int argc, char* argv[]){ char str[] ="911|1234|0010"; char * pch; printf ("Splitting string \"%s\" in tokens:\n",str); pch = strtok (str,"|"); while (pch != NULL) { printf ("%s\n",pch); if(strcmp(pch,"88888") == 0) { break; } pch = strtok (NULL, "|"); } return 0;}
[解决办法]
pch = strtok (NULL, "|");
加这个貌似也抱错哇
还不如在strcmp在加个null判断呢
程序出错就是因为最后一次循环时pch已经是null
[解决办法]