| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3973 人关注过本帖
标题:用c语言比较两个txt文件是否一致(不分大小写)
取消只看楼主 加入收藏
吕重义
Rank: 1
来 自:吉林长春
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
用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);
}
搜索更多相关主题的帖子: include C语言 
2012-12-18 16:46
吕重义
Rank: 1
来 自:吉林长春
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-18
收藏
得分:0 
回复 2楼 yaobao
表示纯新手,真的不太会,写了一下午写成这样还有错误感觉要崩溃了.......
当初把读取两个文件拆开来分别试都好使,就是放在一起不知道为什么就是得不出结果......
2012-12-18 17:06
吕重义
Rank: 1
来 自:吉林长春
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-18
收藏
得分:0 
回复 3楼 zhaoya881010
for不是可以赋值嘛,所有的n都放在for里面第一句n等于0了。
2012-12-18 17:09
吕重义
Rank: 1
来 自:吉林长春
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-18
收藏
得分:0 
回复 6楼 zhaoya881010
刚开始没有-1,结果正确只不过后面出现好多乱码,后来我试了一下-1,结果不仅没错,乱码也少了好多.....于是就一直-1了....研究了好半天也没研究出为什么,系统bug?还是系统自动忽略str【-1】,就不清楚。感觉应该是系统随机赋值,正好可以满足某个条件.......
2012-12-18 17:21
吕重义
Rank: 1
来 自:吉林长春
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-18
收藏
得分:0 
回复 8楼 yaobao
谢谢了,我拿去研究一下,不懂的问你可以么?
2012-12-18 17:31
吕重义
Rank: 1
来 自:吉林长春
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-12-18
收藏
得分:0 
回复 9楼 zhaoya881010
也就是说我把第一个txt读取放到str1的时候,再去读取第二个时str1会被刷新么?要是改的话怎么改能让str1里面的值保持住呢?
2012-12-18 17:34
快速回复:用c语言比较两个txt文件是否一致(不分大小写)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018566 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved