我正在尝试比较一个包含char指针的结构字段和一个char指针,但比较不起作用。
typedef struct node{
char * word;
struct node * next;
int occurrence;
}No;
aux = list;
while(aux != NULL){
if(aux->word == token)
{
new_node->occurrence = new_node->occurrence+1;
exist = 0;
}
aux = aux->next;
}
答案 0 :(得分:2)
而不是
if (aux->word == token) {
}
你需要写:
if (strcmp(aux->word, token) == 0) {
// your code here
}
man strcmp
答案 1 :(得分:2)
if(aux->word == token)
嗯,你正在比较地址,如果它们相等(这是极不可能的),它将进入块。
正确的方法是检查内容。 strcmp()
可以帮助您。
strcmp(aux->word, token) == 0
比较他们指出的内容。这在这里是合适的。
答案 2 :(得分:0)
==运算符不适用于字符串。应使用标准函数strcmp()。如果字符串相等,函数将返回0。