我有一个包含多列的大 CSV 文件,我需要编写一个函数来检查每一行,以查看用户输入的名称是否与第二列上的信息匹配。如果确实匹配,则增加计数器(称为 dupe)并存储信息(尽管还没有到达该部分,因为我无法使其他所有内容正常工作)。这是我的代码:
char buffer;
fgets(buffer, MAX_LINE, fp);
char* token = strtok(buffer, ";");
while (token !=NULL){
token = strtok (NULL, ";");
while(fgets(buffer, MAX_LINE, fp) != NULL){
token = strtok(buffer, ";");
strcpy(bufferCode,token);
token = strtok(NULL, ";");
strcpy(bufferName,token);
if(bufferName == name){ <--------- name is the parameter of the function
dupe++;
}
}
我尝试了不同的方法,并寻找解决我发现的问题的方法,但无济于事。使用 strtok 是我发现的过滤 CSV 并从中获取信息的唯一方法,此时我已经没有想法/不完全明白我做错了什么。
您正在使用相等运算符来比较字符串:
==
,它比较内存地址,而不是实际的字符串内容。您是否尝试过使用 strcmp()
来比较字符串?