c語言中文字元串
① 如何在c語言的中文字元串中判斷是否存在特定的漢字
#include<stdio.h>
#include<string.h>
intmain()
{chars[200],s1[3];
inti;
printf("請輸入一串漢字:");
scanf("%s",s);
printf("請輸入要查找的一個漢字:");
scanf("%s",s1);
for(i=0;i<strlen(s);i+=2)
if(s[i]==s1[0]&&s[i+1]==s1[1])
{printf("您輸入的第%d個漢字是%s
",i/2+1,s1);
break;
}
if(i>=strlen(s))printf("未找到!");
return0;
}
② C語言 中文字元串輸出問題
首先你要知道 你用char類型來存放中文?
中文一個字元是2個位元組,但是char一個字元是1個位元組,所以如果你輸出的長度或者存儲的長度有問埋笑題物瞎,那麼就肯定悲劇彎螞含。
中文可以用wchar,也就是寬字元。
③ C語言如何輸入中文
C語言中輸入中文,實際上就是輸入字元串,這個字元串可以是英文中文,數字都可以。
#include<stdio.h>
void
main()
{
char
string[100];//定義一個數組存放你輸入的字元串
scanf(string);//在鍵盤上輸入中文,輸入完回車就好
printf(「%s」string);//輸出你輸入的中文
}
④ C語言怎麼定義中文字元
需要准備的材料分別有:電腦、C語言編譯器。
1、首先,打開C語言編譯器,新建一個初始.cpp文件,例如:test.cpp。
⑤ C語言怎麼從字元串中取出中文字元
這個需要具體看編譯器中漢字的編碼情況,漢字編碼是2至4個位元組,我是手機編譯器,漢字編碼是3個位元組,參考代碼如下:
#include<stdio.h>
char *str = "你好123哈哈456";
int main()
{
int i;
for(i=0;str[i]!=0;++i)
if(str[i]>127){
printf("%c%c%c\n",str[i],str[i+1],str[i+2]);
i+=3-1;
}
else printf("%c\n",str[i]);
return 0;
}
⑥ C語言中帶有中文的字元串怎麼翻轉
看中文字元編碼
windows一般是gbk
兩個位元組 作為一個漢字,第一個位元組必然是0xA0以上的。
遇到這種 把兩個位元組作為一個整體進行翻轉。
對於帶漢字的,用桐物一個字元串進行翻轉比較麻煩
最好用另一個字元串進行存儲。
voidreverse_with_chinese(char*s)
{
首拍char*p;
intlen=strlen(s);
inti,t;
p=(char*)malloc(len+1);
p[len]=0;
t=len;
for(i=0;s[i];)
{
if(s[i]>0xA0)//漢字
{
p[t-1]=s[i];
p[t]=a[i+1];
t-=2;
i+=2;
者輪羨}
else
{
p[t--]=s[i++];
}
}
strcpy(s,p);
free(p);
}
⑦ C語言中能不能定義漢字字元串
1、計算機用兩個位元組來表示一個漢字,「我」在內存里就是這樣存放的:ce
d2。ce是str[0]的內容,d2是str[1]的做凳內容。第一次循環輸出str[0],但是這個字元在ascii字元集里代表這樣一個東西(不知道在這兒能不能正常顯示),但是windows的命令提示符程序讀取到這里就會自動使蔽鎮用寬字元集,也就是說,純並旅它已經准備好讀取下一個字元,然後把他們當成一個字元顯示出來。於是就出現了那個漢字。
2、常式:
#include
int main()
{
printf("%c%c",(char)0xce,(char)0xd2);
}
⑧ c語言 如何讀取中文字元串
可以使用輸入輸出重定向來將TXT文本中的字元內容導入程序中,或者使用標准C庫函數:fopen()和fgetc();
先使用fopen()函數打開TXT文本文件,然後使用fgetc讀取文本文件中的字元。讀取全部文本中全部字元可以使用一個while循環加判斷是否讀取到文件結尾來實現:
char ch;
while((ch= fgetc(fp)) != EOF)
這樣當讀取到文件結尾時,while循環就會終止。
C語文編寫編譯如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAXLINE 100000
#define BUFLEN 1024
int main()
{
FILE *file;
char buf[BUFLEN];
int len=0,i=0;
char *array[MAXLINE];
file=fopen("test.txt","r");//打開TXST.TxT文件
if(!file)return -1;
while(fgets(buf,BUFLEN,file))//讀取TXT中字元
{
len=strlen(buf);
array[i]=(char*)malloc(len+1);
if(!array[i])break;
strcpy(array[i++],buf);
}
fclose(file);
i--;
while(i>=0&&array[i])
{
printf("%s\n",array[i]);//列印test文檔的字元
free(array[i--]);
}
}
⑨ C語言中如何用編碼輸出中文字元
首先,你要明白這個不管是中文的字元,還是英文字元,還是數字等等都是編碼好了的,65對應的就是A,所以你應該去看看中文是怎麼編碼的,我記得好像一個漢字要用2個位元組來編碼,一個位元組肯定不夠用,最多才256個漢字嘛。另外,好像還有很多種編碼方式,如ASCII\UNICODE等。祝你學得愉快。
所以
char chinese[]="中華人民共和國";
printf("字元串長度=%d\n",strlen(chinese));//輸出的長度為14。
如果你只是單純地想實現輸出某些中文的變數的話,可以從文本文件中讀出來。
⑩ C語言中文字元
在C語言中,如果輸出中文字元,可以通過printf函數直接輸出。printf函數在內部提供這種機制,實現寬字元的轉換,因此都可以正常輸出,比如:
printf("中文測試 ");
另外也可以使用wprintf來輸出存儲在變數的中文字元,需要進行語言的區域設置。示例如下:示例如下,輸出寬字元「中」字。
#include<stdio.h>
#include<locale.h>
intmain()
{
setlocale(LC_ALL,"chs");
wchar_twc=L'中';
wprintf(L"%c ",wc);
return0;
}