特定の問題があります。2 つのファイルから文字列を読み取り、それらを 1 文字ずつ比較して、どの行で違いがあり、どれだけの文字が異なるかを判断する必要があります。ポインターとすべてのものを作成しましたが、問題は最初のファイルの最後に来るときです (短いファイルの長さだけを読み取る必要があります) for ループが終了するまで最後の文字列を比較できません'\n' であり、最後の行には \n がありません。しかし、反対に for ループに「\0」を入れると、「\n」も char としてカウントされるため、間違った結果が得られます。この問題を処理するにはどうすればよいですか? 提案?文字の差を数える必要があるため、 strcmp() を使用したくありません。また、他にも満たすべき条件がいくつかあります。これが私の問題です:
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