C - print中的字符串与strcmp表示它们不相同

时间:2014-12-04 21:02:04

标签: c strtok strcmp

大家好我的服务器客户端项目有问题。我使用命令./server www.google.com运行我的代理服务器,所以我有argv[1]=www.google.com。在此之后,我运行我的客户端,然后向服务器发送值GET www.google.com。现在从服务器端我使用strtok_r(buffer," ",&string1)所以我有buffer=GETstring1=www.google.com(我确定这些因为我打印它们)。问题是当我使用

if((strcmp(string1,argv[1]) == 0))
        {       
            printf(" SAME VALUES \n");
        }

我没有得到printf所以这两个变量没有相同的值。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

strtok_r(buffer," ",&string1)中,string1不是指向找到的令牌的指针。您似乎在比较string1,但函数返回值是令牌指针。所以代码应该是

char * tok = strtok_r(buffer," ",&string1);
if ((strcmp (tok,argv[1]) == 0))
    {       
        printf(" SAME VALUES \n");
    }