十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
1、引入標(biāo)準(zhǔn)輸入輸出庫(kù):sdtio.h。
成都創(chuàng)新互聯(lián)是一家專注于做網(wǎng)站、網(wǎng)站建設(shè)與策劃設(shè)計(jì),景洪網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:景洪等地區(qū)。景洪做網(wǎng)站價(jià)格咨詢:028-86922220
2、定義字符串形式的漢字(采用字符數(shù)組存儲(chǔ))。
3、使用printf函數(shù),或者puts函數(shù)輸出字符串形式的漢字。
例如:
#includestdio.h
int?main()
{
char?str[]="輸出漢字";
printf("%s\n",str);
puts(str);
return?0;
}
/*
運(yùn)行結(jié)果:
輸出漢字
輸出漢字
*/
一般情況下,應(yīng)用程序采用的字符集為gbk,
gb2312,該字符集中一個(gè)漢字由兩個(gè)字節(jié)組成,所以在普通的C語(yǔ)言中,漢字是按字符串進(jìn)行存儲(chǔ)和輸出的。(另:還有utf8字符集,一個(gè)漢字由三個(gè)字節(jié)組成,詳情可查閱utf8字符集)
char
*
p
=
"張三";
輸出多個(gè)中文:
printf("%s\n",
p
);
//按字符串輸出完整的數(shù)據(jù)
輸出一個(gè)中文:
printf("%c%c",
*p,
*p+1
);
//按字符輸出,同時(shí)輸出兩個(gè)字節(jié)
輸出一個(gè)中文串的長(zhǎng)度:
printf("sizeof(p)=%d\n",
sizeof(p)
);
//p變量是指針,所以,這里輸出的是指針的寬度,一般32位機(jī)是4
printf("sizeof(張)=%d\n",
sizeof("張")
)
;
// "張"是個(gè)常量字符串,sizeof是得到其占內(nèi)存的大小,字符串都有一個(gè)結(jié)束符,一個(gè)”張“字占兩字節(jié),加上字符串結(jié)束\0,所以,占三個(gè)字節(jié)的內(nèi)存空間
printf("length
of
(張)=
%d\n",
strlen("張")
);
//strlen得到的是字符串有效字符長(zhǎng)度(字節(jié)數(shù)),不包括結(jié)束符,所以,長(zhǎng)度是兩個(gè)字節(jié)
定義一個(gè)字符串變量,在這個(gè)變量的值中就可以輸入中文了。漢字是多字節(jié)的,一個(gè)char放不下,可以使用字符數(shù)組,但需要給數(shù)組分配空間,或者使用string。
例如:
#includestdio.h
int main(void)
{
char a[128];
printf("請(qǐng)輸入所需輸出的漢字:");
scanf("%s",a);
printf("%s\n",a);
return 0;
#includestdio.h
void main()
{
printf("在這里輸入你想輸出的漢字\n");
//printf是C語(yǔ)言里的輸出函數(shù),在雙引號(hào)里的漢字會(huì)原樣輸出
}
不知道題主問(wèn)的是不是這個(gè),望采納!