我有一個鏈表,我只需要根據某些條件計算一些記錄。我有這個代碼。鏈表的鏈接列表中的對象計數
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',並且忘掉所有這些複雜情況。) –