1樓:折項蒲詩蘭
一般情況下,應用程式採用的字符集為gbk,gb2312,該字符集中一個漢字由兩個位元組組成,所以在普通的c語言中,漢字是按字串進行儲存和輸出的。(另:還有utf8字符集,一個漢字由三個位元組組成,詳情可查閱utf8字符集)
char*p
="張三";
輸出多箇中文:
printf("%s\n",p);
//按字串輸出完整的資料
輸出一箇中文:
printf("%c%c",
*p,*p+1
);//按字元輸出,同時輸出兩個位元組
輸出一箇中文串的長度:
);//p變數是指標,所以,這裡輸出的是指標的寬度,一般32位機是4printf("sizeof(張)=%d\n",sizeof("張"));
// "張"是個常量字串,sizeof是得到其佔記憶體的大小,字串都有一個結束符,一個」張「字佔兩位元組,加上字串結束\0,所以,佔三個位元組的記憶體空間
printf("length
of(張)=
%d\n",
strlen("張")
);//strlen得到的是字串有效字元長度(位元組數),不包括結束符,所以,長度是兩個位元組
2樓:匿名使用者
這個跟系統有關係~如果用的是turbo c那是不可能切換到中文的~現在的vc++6.0就沒有問題,你要先看看自己的軟體版本支援不支援中文~
3樓:
就是在雙引號裡輸入中文就行了。
如printf("我的第一個c語言程式設計");
4樓:媽媽說打
用的是tc環境吧?tc的話只能是英文形式
c語言怎麼用printf輸出字串。
5樓:叫8爸爸
printf函式的一般格式
printf(格式控制字串,輸出表列);
以圖1所示為例。
圖1.函式引數包括兩部分:
【1】格式控制字串,是用雙引號括起來的字串,也稱為轉換控制字串,它指定輸出資料項的型別和格式。
它包括兩種資訊:
●格式說明項:由%和格式字元組成,如%d,%f等。格式說明總是由%字元開始,到格式字元終止。
它的作用是將輸出的資料項轉換為指定的格式輸出。輸出表列中的每個資料項對應一個格式說明項。
● 普通字元:即需要原樣輸出的字元,如逗號和換行符。
【2】輸出列表,是需要輸出的一些資料項,可以是表示式。
例如:假如a=3,b=4,那麼printf("a=%db=%d",a,b);,輸出a=3b=4。其中兩個 「%d」是格式說明,表示輸出兩個整數,分別對應變數a,b。
「a=」,「b=」是普通字元,原樣輸出。
由於printf是函式,因此,格式控制字串和輸出表列實際上都是函式的引數。printf函式的一般形式可以表示為:
printf(引數1,引數2,引數3,…,引數n)
printf函式的功能是將引數2到引數n按照引數1給定的格式輸出。
【3】格式字元 (構成格式說明項)
對於不同型別的資料項,應當使用不同的格式字元構成的格式說明項。常用的有以下幾種格式字元:(按不同型別資料,列出各種格式字元的常用用法)
【d格式符】用來輸出十進位制整數。有以下幾種用法:
● %d,按照資料的實際長度輸出。
● %md,m指定輸出欄位的寬度 (整數)。如果資料的位數小於m,則左端補以空格(右對齊);若大於m,則按照實際位數輸出。
● %-md,m指定輸出欄位的寬度 (整數)。如果資料的位數小於m,則右端補以空格 (左對齊);若大於m,則按照實際位數輸出。
● %ld,輸出長整型資料,也可以指定寬度%mld。
【o格式符】以八進位制形式輸出整數。注意:是將記憶體單元中的各位的值按八進位制形式輸出,輸出的資料不帶符號,即將符號位也一起作為八進位制的一部分輸出。
例如:inta=-1;
printf("%d,%o,%x",a,a,a);
-1的原碼:1000,0000,0000,0001。
-1在記憶體中的補碼錶示為:
1111,1111,1111,1111=1,111,111,111,111,111=1,7,7,7,7,7=ffff
輸出:-1,177777,ffff
【s格式符】用來輸出一個字串。有以下幾種用法:
● %s,輸出字串。
● %ms,輸出的字串佔m列,如果字串長度大於m,則字串全部輸出;若字串長度小於m,則左補空格 (右對齊)。
● %-ms,輸出的字串佔m列,如果字串長度大於m,則字串全部輸出;若字串長度小於m,則右補空格 (左對齊)。
● %m.ns,輸出佔m列,但只取字串左端n個字元,左補空白 (右對齊)。
● %-m.ns,輸出佔m列,但只取字串左端n個字元,右補空白 (左對齊)。
【 f 格式符】用來輸出實數 (包括單、雙精度,單雙精度格式符相同),以小數形式輸出。有以下幾種用法:
● %f,不指定寬度,使整數部分全部輸出,並輸出6位小數。注意,並非全部數字都是有效數字,單精度實數的有效位數一般為7位 (雙精度16位)。
● %m.nf,指定資料佔m列,其中有n位小數。如果數值長度小於m,左端補空格(右對齊)。
● %-m.nf,指定資料佔m列,其中有n位小數。如果數值長度小於m,右端補空格(左對齊)。
【 e 格式符】以指數形式輸出實數。可用以下形式表示:
● %e,不指定輸出資料所佔的寬度和小數位數,由系統自動指定。如6位小數,指數佔5位,-e佔1位,指數符號佔1位,指數佔3位。數值按照規格化指數形式輸出 (小數點前必須有而且只有1位非0數字)。
6樓:大野瘦子
void main()
printf輸出字串的一些格式
1、原樣輸出字串:printf("%s", str);
2、輸出指定長度的字串, 超長時不截斷, 不足時右對齊:printf("%ns", str);
注:n 為指定長度的10進位制數值
3、輸出指定長度的字串, 超長時不截斷, 不足時左對齊:printf("%-ns", str);
注:n 為指定長度的10進位制數值
4、輸出指定長度的字串, 超長時截斷, 不足時右對齊:printf("%n.ms", str);
注:n 為最終的字串輸出長度
m 為從引數字串中取出的子串長度
5、輸出指定長度的字串, 超長時截斷, 不足時左對齊是: printf("%-n.ms", str);
注:n 為最終的字串輸出長度
m 為從引數字串中取出的子串長度
7樓:福建省寧德市
printf函式的一般使用形式為:printf("輸出格式",輸出項系列);要輸出字串,則只需寫出相應的輸出格式以及輸出項系列即可,其中輸出格式為%s,輸出項系列為字串名
printf函式輸出字串的例子如下:
#include
void main()
上述程式輸出了字串 abcd
8樓:上帝來自地球
列子如下:
#include
struct student;
int main(void)
9樓:匿名使用者
假設你的結構變數為s,用s.a去訪問那個字串即可。
printf("%s", s.a);就可以列印了
10樓:烏龍魔法師
#include
main()
這樣也是可以的
,另外c還提供了函式輸入輸出字串
上面用gets(name);輸入
puts(name) 輸出也是可以的
11樓:伊·梵
沒有中文環境,用printf不能輸出漢字
一種取巧的辦法是,自己構造"你好"的點陣字模(也可以使用現成的點陣漢字型檔),然後用printf("@")輸出點陣,可以看到巨大的"你好"
圖形模式下可以使用點陣漢字型檔輸出中文,不過那不是用printf實現的
12樓:重生之狼
int number;
char name[10];
int score;
printf("%d %s %d",number,name,score);
13樓:烏鴉
#include
int main(void)
注意 如果不支援中文字型檔 會出現亂碼
14樓:匿名使用者
printf("%s\n",&a);
15樓:匿名使用者
c語言裡沒有string
只有定義個字元陣列
char name[20];
printf("%d %s %d",number,name,score);
標頭檔案stdio.h
請問在c語言中如何輸出漢字?
16樓:go我是一個吃貨
1、引入標準輸入輸出庫:sdtio.h。
2、定義字串形式的漢字(採用字元陣列儲存)。
3、使用printf函式,或者puts函式輸出字串形式的漢字。
例如:#include
int main()
/*執行結果:
輸出漢字
輸出漢字*/
17樓:功昆頡騰存
執行編譯過的可執行檔案
***.exe
***.exe
>>***.txt
詳情請查閱
dos的管道使用
這樣,***.exe的所有螢幕輸出,都將寫入***.txt檔案
18樓:匿名使用者
在程式執行的控制檯視窗的上方右擊, 選擇預設值 , 把**頁改為936 中文**頁
再次執行就可以顯示中文了
如果還是無法顯示,可能是cmd的預設**頁沒有改變 ,請參考這篇博文
19樓:匿名使用者
char的長度不夠吧...它是8位元組的...中文是16位元組的...所以...
20樓:一鏈二棍
#include
#include
#include
int main()
return 0;}
21樓:匿名使用者
ls,不是那個問題。那是自動分配的空間,肯定有空間的。
lz,我試了一下,是這麼輸出的:
#include
void main()
結果是成功的。
可能是你的編譯器有問題,是不是沒有漢字的字型檔?
22樓:沐風平浪靜
用printf;
例如:printf("我我我我");
記得要英文符號;
在c語言中,中文可以看做字串
23樓:匿名使用者
你好, c語言直接就能輸出漢字,只要你的檔案編碼支援utf-8或者其他中文編碼的話。
例如printf("你好"),就可以在dos介面上出現這個兩個中文,通常的帶介面的編譯器都會支援utf-8編碼不需要擔心亂碼的問題,如果亂碼的話有可能分為兩種情況,第一種是你的檔案編碼不支援中文,另一種就是你的中文使用char型別的進行儲存,一箇中文會佔用兩個位元組來進行儲存(也就是兩個char字元,如果用一個char字元是儲存不了一箇中文字元的)
問個C語言輸出問題printf53fn
m.nf 就是總共m位,源小數點後佔n位,7.3f 也就是總bai共佔7位,位數不足的時du候zhi右會用dao空格補足,超過的時候就會被截斷,比如123456.12345,就會得到123456.123,因為這個數整數部分就有6位了,而你的要求是小數點後要留3位,則剩下的整數部分只有4位,程式不會把...
c語言中單獨輸出轉義字元n如printfn代
格式字元裡 n 是換一來行的源意思。printf nabc 先bai 換一行,再列印du字元abc.printf abc n 先打zhi印字元abc,再換一行.printf nabc n 先 換一行,再列印字元abc,然後dao再換一行。是printf n 就是換行的意思 沒有區別,都是換行的意思 ...
c語言中printf語句以小數形式輸出單 雙精度實數的問題
這個問題其實屬於計算機組成原理的範疇了,你需要先認識到浮點數是如何儲存的。目前已知的所有的c c 編譯器都是按照ieee 國際電子電器工程師協會 制定的ieee 浮點數表示法來進行運算的。這種結構是一種科學表示法,用符號 正或負 指數和尾數來表示,底數被確定為2,也就是說是把一個浮點數表示為尾數乘以...