C语言中如何读取文件中的汉字并将其存入数组中?

写一个小程序时遇到的问题,要处理汉字输入和比较这个功能,准备用数组存放,然后比较,但是在读入式卡壳了,帮帮忙哦,谢谢!!... 写一个小程序时遇到的问题,要处理汉字输入和比较这个功能,准备用数组存放,然后比较,但是在读入式卡壳了,帮帮忙哦,谢谢!! 展开
 我来答
White_MouseYBZ
推荐于2018-02-27 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6433万
展开全部
  1. 建立一个足够大的字符型数组;

  2. 以文本方式读打开原文件;

  3. 按字符方式读取文件,每读一个字符判断一下是否为汉字编码(<0),若是则存入字符数组,不是则跳过读取下一个字符,直到文件结束。

设原文件在当前目录下,名为123.txt,举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
#include "stdlib.h"
int main(void){
    char s[1000],ch;
    FILE *fp;
    int i=0;
    if((fp=fopen("123.txt","r"))==NULL){
        printf("Open the file failure...\n");
        exit(0);
    }
    while((ch=fgetc(fp))!=EOF)
        if(ch<0)
            s[i++]=ch;
    fclose(fp);
    s[i]='\0';
    printf("%s\n",s);//打出来看看
    return 0;
}

注:原文件内容是“fjkslauti我rophk134是2315学jkal 习C语言jks新da;jus手jfkdsla”

输出是“我是学习语言新手”

匿名用户
2013-09-02
展开全部
为了方便文本文件的操作,标准函数编程库提供了,行读写函数,
char *gets(char *s);
char *fgets(char *s, int n, FILE *stream);
-----------------------精通unix下c语言编程与项目实践P66
行输出函数族
int puts(const char *s);
int fputs(const char *s, FILE *stream);
-----------------------精通unix下c语言编程与项目实践P67
块读写函数
能够输入输出任意数量的字符,在操作二进制文件时常常使用,
fread 和fwrite
块读写函数经常操作二进制文件。
-----------------------精通unix下c语言编程与项目实践P70

再有就是编码的知识了
当你输出的ascii码在汉字的范围内的时候,汉字系统会认识到
然后把相应的ascii码变成汉字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-02
展开全部
汉字处理跟字符串处理是一样的。一个汉字就是两个字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-02
展开全部
一个汉字就是两个字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式