我有一个具体的问题。我必须从两个文件中读取字符串并逐个字符地比较它们,并告诉它们在哪一行中存在差异以及它们不同的字符数。我已经制作了指针和所有东西,但问题是当涉及到第一个文件的末尾时(它只需要读取较短文件的长度)我无法比较最后一个字符串,因为我的 for 循环一直到'\n',最后一行没有\n。但另一方面,如果我将 '\0' 放在 for 循环中,它会给我一个错误的结果,因为它也将 '\n' 视为 char。我该如何处理这个问题?建议?我不想使用 strcmp() 因为我需要计算 char 差异,并且还有一些其他条件需要满足。这是我的问题:
while(!feof(fPointer)){
zeichnen = 0;
fgets(singleLine, 150, fPointer);
fgets(singleLine2, 150, fPointer2);
length = strlen(singleLine); // save the length of each row, in order to compare them
length2 = strlen(singleLine2);
if(length <= length2){
for(i=0; singleLine[i] != '\n'; i++){
singleLine[i] = tolower(singleLine[i]);
singleLine2[i] = tolower(singleLine2[i]);
if(singleLine[i] != singleLine2[i]){
zeichnen++;
}
}
printf("Zeile: %d \t Zeichnen: %d\n", zeile, zeichnen); // row, char