所有
我来自java和php世界所以这可能是一个因素。 但我有一个问题:
printf("%s\n",data[0]);
if(data[0] == "BG01") {
printf("%s\n",otherstring);
}
问题是第一个printf在控制台“BG01”中返回,但由于某种原因,IF条件没有接收到它,第二个printf永远不会被执行。
这张照片出了什么问题?
谢谢, 专家组
答案 0 :(得分:12)
你现在的做法是比较2个指针而不是它们指向的字符串。这些指针可以指向相同的值,但位于内存中非常不同的位置,因此不是真的。
这样做的方法是使用strcmp(string1,string2)函数来检查字符串本身而不是指针。
答案 1 :(得分:8)
在C中,你必须使用strcmp()
,就像你必须在Java中使用.equals()
一样:
if (strcmp(data[0], "BG01") == 0) ...