我有一个链表,我只需要根据某些条件计算一些记录。我有这个代码。链表的链接列表中的对象计数
int count_records() {
int number = 0;
RECORD *re;
char criteria[20];
for (re = first; re != NULL; re = re->next) {
criteria = (re->criteria);
if(criteria=="something")
number++;
}
return number; }
结构是这样的:
typedef struct record {
char criteria[20];
struct record *next;
} RECORD;
问题是,它使我对线这个错误标准=(重新>条件);错误:无效数组赋值
任何想法?
谢谢。
值得一提的唯一想法是用'std :: string'替换所有'char []'。 C风格的数组真的是二等公民,并没有价值语义。 –
或者使用'!strcmp(criteria,“something”)' – Edward
@Edward'strcmp'不会返回一个'bool',而是一个'int',所以使用'!'有点混淆。这里的成语应该是'strcmp(criteria,“something”)== 0'。 (除了当然,真正的习惯用法是使用'std :: string',并且忘掉所有这些复杂情况。) –