当前位置:首页 » 编程语言 » c语言中汉字存到字符数组
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言中汉字存到字符数组

发布时间: 2022-09-14 23:15:43

c语言 文件读取 字符 到一个字符数组

可以通过fgetc函数,将字符读取出来,并赋值到数组的对应位置上。

fgetc声明在stdio.h中,其原型为

int fgetc(FILE *fp);

功能为从打开的文件fp中读取一个字符,并返回。

当读取成功时,返回读取到的字符的ascii码值,否则返回EOF。


以下是逐个读取字符,存于字符数组,直到读完整个文件的例子。

#include<stdio.h>
intmain()
{
charbuf[10240];//定义一个足够大的字符数组存文件数据。
intc;//临时变量。
intcnt=0;//标记目前读到几个字节。
FILE*fp;//文件指针。

fp=fopen("in.txt","r");//打开文件。
while(1)
{
c=fgetc(fp);//读一个字节。
if(c==EOF)break;//到文件尾,退出循环。
buf[cnt]=c;//赋值到字符数组中。
cnt++;//读到的字符增加一个。
}
fclose(fp);//关闭文件。

return0;
}

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

为了方便文本文件的操作,标准函数编程库提供了,行读写函数,
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码变成汉字。

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

  1. 建立一个足够大的字符型数组;

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

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

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

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"stdlib.h"
intmain(void){
chars[1000],ch;
FILE*fp;
inti=0;
if((fp=fopen("123.txt","r"))==NULL){
printf("Openthefilefailure... ");
exit(0);
}
while((ch=fgetc(fp))!=EOF)
if(ch<0)
s[i++]=ch;
fclose(fp);
s[i]='';
printf("%s ",s);//打出来看看
return0;
}

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

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

㈣ LINUX中c语言怎么把汉字存放到数组中

//代码已测,我用的是一位数组,没必要用二维数组
#include<stdio.h>
main()
{
charbuf[100]={0};
intlen;
FILE*f=NULL;
printf("readfromfile?y/n ");

if(getchar()=='y')
{
if((f=fopen("1.txt","rb"))==NULL)
{printf("openfilefailed.");return;}

len=fread(buf,1,sizeof(buf),f);

if(len){printf("%s ",buf);}

fclose(f);
}
else
{
printf("inputyourwords: ");
scanf("%s",buf);

if((f=fopen("1.txt","ab+"))==NULL)
{printf("openfilefailed.");return;}

//findwordlength
for(len=0;len<(sizeof(buf)-1);len++)
if(buf[len]==0&&buf[len+1]==0)
{break;}

len=fwrite(buf,1,len,f);
fclose(f);
}
}

㈤ C语言问题,如何将中文放进字符数组

char *s[4]={"李四","张三","黄生","二小"},*p;[4]

把p[i]指向s[i],即:

for(i=0;i<4;i++)

p[i]=s[i];

也可以直接char *p[4]={"李四","张三","黄生","二小"};这里数字4只是表示指针数组中指针的个数,而不是字符长度。

(5)c语言中汉字存到字符数组扩展阅读:

C语言的运算符主要用于构成表达式,同一个符号在不同的表达式中,其作用并不一致。下面按计算的优先顺序,分别说明不同作用的表达式。需要特别指出,在C语言标准中,并没有结合性的说法。

相同优先级运算符,从左至右依次运算。注意后缀运算优先级高于前缀。因此++i++应解释为++(i++)。

而与或非的运算优先级都不一样,因此a && b || b && c解释为(a && b) || (b && c)

合理使用优先级可以极大简化表达式。

㈥ c语言 如何将字符保存在数组里

char
*s[4]={"李四","张三","黄生","二傻子"},*p[4];
然后把p[i]指向s[i],即:
for(i=0;i<4;i++)
p[i]=s[i];
你也可以直接char
*p[4]={"李四","张三","黄生","二傻子"};这里数字4只是表示指针数组中指针的个数,而不是字符长度。

㈦ C语言如何在代码中将汉字存入一个已经声明过的字符串

这个要看字符集,不同字符集对一个字符的定义是不一样的。你可以基本这么认为,你不可能一个字一个字的给汉字赋值,因为一个汉字对应多个字符,你不能拆开来赋值。你只能用strcpy当作字符串来拷贝

㈧ c语言 如何将字符保存在数组里

// 对你上面的程序, 进行了三处修改
#include<stdio.h>
#define N 3
void main()
{ int i=0,p=0;
char a[N],b[N];
for(i=0;i<N;i++)
{printf("请输入第%d题的正确答案:\n",i+1);
fflush(stdin);//增加了这句话, 来清除输入缓冲区
scanf("%c",&a[i]);
}
for(i=0;i<N;i++)
{printf("请输入您第%d题的答案:\n",i+1);
fflush(stdin);//同上
scanf("%c",&b[i]);
if(b[i]==a[i])
{p=p+1;}
printf("正确答案是:%c\n",a[i]);//将%d改为了%c
}
printf("您共做对了%d道题\n",p);
}