在运行下面的代码时,会出现"x,y"模式。这个图案印在这里:printf("%s", start);。但if (strncmp(cp, VAL, strlen(VAL) == 0 ))并没有介入。我想,它应该被介入。怎么啦?
me@host ~ $ ./test|grep x,y
<P k="x,y" v="160.59" z="100"/>这是代码的一部分:
#define VAL "\"x,y\""
void process(char * start, char *stop)
{
char * cp;
printf("process\n");
printf("%s", start);
for (cp = start; cp <= stop; cp++)
{
if (strncmp(cp, VAL, strlen(VAL) == 0 ))
{
printf ("F O U N D VAL\n");
}}
发布于 2013-11-26 21:42:59
也许你是说
if (strncmp(cp, VAL, strlen(VAL)) == 0)取而代之的是
if (strncmp(cp, VAL, strlen(VAL) == 0 ))它基本上检查0字符,返回0,所以条件总是false。
https://stackoverflow.com/questions/20228528
复制相似问题