在运行下面的代码时,我看到,出现了"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");
}
}
答案 0 :(得分:5)
也许你的意思
if (strncmp(cp, VAL, strlen(VAL)) == 0)
而不是
if (strncmp(cp, VAL, strlen(VAL) == 0 ))
基本上检查0
个字符,返回0
,因此条件始终为false
。