當前位置:首頁 » 編程語言 » 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);
}