用c语言比较两个txt文件是否一致(不分大小写)
设计思路是先读取两个txt文件的内容,然后都变成大写,再逐个比较。结果在第二个文件读取的地方出现问题,第一个文件读取到的数据就是无法保存,总是被第二个文件覆盖。谁能帮帮我,是设计思路的问题,还是编程中有错误?本人小白,初学C语言,求大神帮助!
文件名字都是由键盘输入的,程序最后输出返回值,一致为1,不一致为0。
#include <stdio.h>
void str_toupper(char str[])
{
unsigned i=0;
while(str[i]){
str[i]=toupper(str[i]);
i++;
}
}
int stricomp(const char str1[],const char str2[])
{
int n,x=0;
for(n=0;n<3;n++){
x=0;
if(str1[n]==str2[n])x=1;
else if(str1[n]!=str2[n])break;
}
return(x);
}
int main(void)
{
int n;
char str1[]={0};
char str2[]={0};
FILE *fp;
char fname[255];
puts("输入文件1的名字:");
scanf("%s",fname);
fp=fopen(fname,"r");
if(fp==NULL)
puts("ファイルをオープンできません。");
for(n=0;str1[n-1]!=EOF;n++){
str1[n]=fgetc(fp);
}
fclose(fp);
puts("输入文件2的名字:");
scanf("%s",fname);
fp=fopen(fname,"r");
if(fp==NULL)
puts("ファイルをオープンできません。");
for(n=0;str2[n-1]!=EOF;n++){
str2[n]=fgetc(fp);
}
fclose(fp);
str_toupper(str1);
str_toupper(str2);
printf("%d\n",stricomp(str1,str2));
return(0);
}