C語言怎么用printf輸出字符串
創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十多年品質(zhì),值得信賴!
printf函數(shù)的一般格式
printf(格式控制字符串,輸出表列);
以圖1所示為例。
圖1.
函數(shù)參數(shù)包括兩部分:
【1】格式控制字符串,是用雙引號(hào)括起來的字符串,也稱為轉(zhuǎn)換控制字符串,它指定輸出數(shù)據(jù)項(xiàng)的類型和格式。
它包括兩種信息:
●格式說明項(xiàng):由%和格式字符組成,如%d,%f等。格式說明總是由%字符開始,到格式字符終止。它的作用是將輸出的數(shù)據(jù)項(xiàng)轉(zhuǎn)換為指定的格式輸出。輸出表列中的每個(gè)數(shù)據(jù)項(xiàng)對(duì)應(yīng)一個(gè)格式說明項(xiàng)。
● 普通字符:即需要原樣輸出的字符,如逗號(hào)和換行符。
【2】輸出列表,是需要輸出的一些數(shù)據(jù)項(xiàng),可以是表達(dá)式。
例如:假如a=3,b=4,那么printf("a=%db=%d",a,b);,輸出a=3b=4。其中兩個(gè)?“%d”是格式說明,表示輸出兩個(gè)整數(shù),分別對(duì)應(yīng)變量a,b?!癮=”,“b=”是普通字符,原樣輸出。
由于printf是函數(shù),因此,格式控制字符串和輸出表列實(shí)際上都是函數(shù)的參數(shù)。printf函數(shù)的一般形式可以表示為:
printf(參數(shù)1,參數(shù)2,參數(shù)3,…,參數(shù)n)
printf函數(shù)的功能是將參數(shù)2到參數(shù)n按照參數(shù)1給定的格式輸出。
【3】格式字符?(構(gòu)成格式說明項(xiàng))
對(duì)于不同類型的數(shù)據(jù)項(xiàng),應(yīng)當(dāng)使用不同的格式字符構(gòu)成的格式說明項(xiàng)。常用的有以下幾種格式字符:(按不同類型數(shù)據(jù),列出各種格式字符的常用用法)
【d格式符】用來輸出十進(jìn)制整數(shù)。有以下幾種用法:
●?%d,按照數(shù)據(jù)的實(shí)際長度輸出。
●?%md,m指定輸出字段的寬度?(整數(shù))。如果數(shù)據(jù)的位數(shù)小于m,則左端補(bǔ)以空格(右對(duì)齊);若大于m,則按照實(shí)際位數(shù)輸出。
●?%-md,m指定輸出字段的寬度?(整數(shù))。如果數(shù)據(jù)的位數(shù)小于m,則右端補(bǔ)以空格?(左對(duì)齊);若大于m,則按照實(shí)際位數(shù)輸出。
●?%ld,輸出長整型數(shù)據(jù),也可以指定寬度%mld。
【o格式符】以八進(jìn)制形式輸出整數(shù)。注意:是將內(nèi)存單元中的各位的值按八進(jìn)制形式輸出,輸出的數(shù)據(jù)不帶符號(hào),即將符號(hào)位也一起作為八進(jìn)制的一部分輸出。
例如:
inta=-1;
printf("%d,%o,%x",a,a,a);
-1的原碼:1000,0000,0000,0001。
-1在內(nèi)存中的補(bǔ)碼表示為:
1111,1111,1111,1111=1,111,111,111,111,111=1,7,7,7,7,7=ffff
輸出:-1,177777,ffff
【s格式符】用來輸出一個(gè)字符串。有以下幾種用法:
●?%s,輸出字符串。
●?%ms,輸出的字符串占m列,如果字符串長度大于m,則字符串全部輸出;若字符串長度小于m,則左補(bǔ)空格?(右對(duì)齊)。
●?%-ms,輸出的字符串占m列,如果字符串長度大于m,則字符串全部輸出;若字符串長度小于m,則右補(bǔ)空格?(左對(duì)齊)。
●?%m.ns,輸出占m列,但只取字符串左端n個(gè)字符,左補(bǔ)空白?(右對(duì)齊)。
●?%-m.ns,輸出占m列,但只取字符串左端n個(gè)字符,右補(bǔ)空白?(左對(duì)齊)。
【 f 格式符】用來輸出實(shí)數(shù)?(包括單、雙精度,單雙精度格式符相同),以小數(shù)形式輸出。有以下幾種用法:
●?%f,不指定寬度,使整數(shù)部分全部輸出,并輸出6位小數(shù)。注意,并非全部數(shù)字都是有效數(shù)字,單精度實(shí)數(shù)的有效位數(shù)一般為7位?(雙精度16位)。
●?%m.nf,指定數(shù)據(jù)占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,左端補(bǔ)空格(右對(duì)齊)。
●?%-m.nf,指定數(shù)據(jù)占m列,其中有n位小數(shù)。如果數(shù)值長度小于m,右端補(bǔ)空格(左對(duì)齊)。
【 e 格式符】以指數(shù)形式輸出實(shí)數(shù)。可用以下形式表示:
●?%e,不指定輸出數(shù)據(jù)所占的寬度和小數(shù)位數(shù),由系統(tǒng)自動(dòng)指定。如6位小數(shù),指數(shù)占5位,-e占1位,指數(shù)符號(hào)占1位,指數(shù)占3位。數(shù)值按照規(guī)格化指數(shù)形式輸出?(小數(shù)點(diǎn)前必須有而且只有1位非0數(shù)字)。
在C語言中,輸入輸出字符串有以下兩種方式:
1 用scanf/printf輸入輸出。
scanf/printf是C語言的格式化輸入輸出函數(shù),可以用于輸入輸出各種基礎(chǔ)類型,字符串(char*)也
其支持范圍內(nèi)。
格式化字符為%s。
定義
char str[100];
輸入
scanf("%s",str);
輸出
printf("%s",str);
2 C語言還支持專門的字符串輸入輸出函數(shù):gets/puts。
gets的作用為,讀入一行輸入,并將讀到的換行符替換為字符串結(jié)束符。
puts的作用為,將字符串單行輸出,即輸出字符串內(nèi)容后,會(huì)自動(dòng)在結(jié)尾增加換行。
定義
char str[100];
輸入
gets(str);
輸出
puts(str);
擴(kuò)展資料:
起初,C語言沒有官方標(biāo)準(zhǔn)。1978年由美國電話電報(bào)公司(ATT)貝爾實(shí)驗(yàn)室正式發(fā)表了C語言。布萊恩·柯林漢(Brian Kernighan) 和 丹尼斯·里奇(Dennis Ritchie) 出版了一本書,名叫《The C Programming Language》。
這本書被 C語言開發(fā)者們稱為KR,很多年來被當(dāng)作 C語言的非正式的標(biāo)準(zhǔn)說明。人們稱這個(gè)版本的 C語言為KR C。
KR C主要介紹了以下特色:
結(jié)構(gòu)體(struct)類型
長整數(shù)(long int)類型
無符號(hào)整數(shù)(unsigned int)類型
把運(yùn)算符=+和=-改為+=和-=。因?yàn)?+和=-會(huì)使得編譯器不知道使用者要處理i = -10還是i =- 10,使得處理上產(chǎn)生混淆。
即使在后來ANSI C標(biāo)準(zhǔn)被提出的許多年后,KR C仍然是許多編譯器的最 準(zhǔn)要求,許多老舊的編譯器仍然運(yùn)行KR C的標(biāo)準(zhǔn)。
1970到80年代,C語言被廣泛應(yīng)用,從大型主機(jī)到小型微機(jī),也衍生了C語言的很多不同版本。
1983年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)成立了一個(gè)委員會(huì)X3J11,來制定 C語言標(biāo)準(zhǔn)。
1989年,美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)通過了C語言標(biāo)準(zhǔn),被稱為ANSI X3.159-1989 "Programming Language C"。因?yàn)檫@個(gè)標(biāo)準(zhǔn)是1989年通過的,所以一般簡稱C89標(biāo)準(zhǔn)。有些人也簡稱ANSI C,因?yàn)檫@個(gè)標(biāo)準(zhǔn)是美國國家標(biāo)準(zhǔn)協(xié)會(huì)(ANSI)發(fā)布的。
1990年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(IEC)把C89標(biāo)準(zhǔn)定為C語言的國際標(biāo)準(zhǔn),命名為ISO/IEC 9899:1990 - Programming languages -- C? 。
因?yàn)榇藰?biāo)準(zhǔn)是在1990年發(fā)布的,所以有些人把簡稱作C90標(biāo)準(zhǔn)。不過大多數(shù)人依然稱之為C89標(biāo)準(zhǔn),因?yàn)榇藰?biāo)準(zhǔn)與ANSI C89標(biāo)準(zhǔn)完全等同。
1994年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(IEC)發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Cor 1:1994,有些人簡稱為C94標(biāo)準(zhǔn)。
1995年,國際標(biāo)準(zhǔn)化組織(ISO)和國際電工委員會(huì)(IEC)再次發(fā)布了C89標(biāo)準(zhǔn)修訂版,名叫ISO/IEC 9899:1990/Amd 1:1995 - C Integrity?[7]??,有些人簡稱為C95標(biāo)準(zhǔn)。
參考資料:百度百科-c語言
1,樓上說得正確
printf("輸出文本文件:");
// 這句后面增加:
while ((c=getchar())!='\n' c!=EOF );
//目的是清空輸入緩沖區(qū)。
2,加密算法是正確的
int op,i;
char c,outcome[30];
printf("請(qǐng)輸入操作要求:(0為加密,!0為解密):\n");
scanf("%d",op);
printf("請(qǐng)輸入文本文件:\n");
i=0;
printf("輸出文本文件:");
while ((c=getchar())!='\n' c!=EOF );
while((c=getchar())!='\n')
{
if(op)
outcome[i]=decrpt(c);
else
outcome[i]=encrpt(c);
printf("%c",outcome[i]);
i++;
}
printf("\n");
//while((c=getchar())!='\n')
char a[27] = "abcdefghijklmnopqrstuvwxyz";
char A[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for(int i = 0; i 27; i++)
{
printf("the old char is [%c]", a[i]);
printf("--- the encrpt char is [%c] \n", encrpt(a[i]));
}
for(int i = 0; i 27; i++)
{
printf("the old char is [%c]", A[i]);
printf("--- the encrpt char is [%c] \n", encrpt(A[i]));
}
printf("\n");
getchar();
C語言中實(shí)現(xiàn)函數(shù)返回字符串,首先要確定函數(shù)返回的字符串地址的來源,一般分為四種方式:
函數(shù)形參帶進(jìn)來的地址
靜態(tài)局部變量地址
局部變量地址,必須在函數(shù)中用malloc()函數(shù)進(jìn)行地址分配
采用全局變量地址
參考代碼:
void ?func1( char *s ) ?//通過形參返回字符串
{
strcpy( s, "hello");
}
char * func1_1( char *s ) //另一種寫法
{
strcpy( s, "hello");
return s ; //返回形參地址,方便程序調(diào)用
}
char * func2( void )
{
static char s[100]; //不能是非靜態(tài)變量,否則,子函數(shù)結(jié)束,局部變量被釋放,調(diào)用者得到一個(gè)無效的地址值。
strcpy( s, "hello");
return s ; //返回靜態(tài)局部變量地址,由調(diào)用者采用相應(yīng)的指針變量接收返回值,得到字符串?dāng)?shù)據(jù)。
}
char * func3( void )
{
char *s ;
s=(char *)malloc( 100 );
strcpy( s, "hello");
return s ; //返回s值,該地址需要調(diào)用者去free()釋放。
}
//定義全局變量
char globle_buf[100];
void func4( void )
{
strcpy( globle_buf, "hello");
}
char * func4_1( char *s ) //另一種寫法
{
strcpy( globle_buf, "hello");
return globle_buf ; //返回全局變量地址,方便程序調(diào)用
}
網(wǎng)站名稱:c語言函數(shù)調(diào)出字符串 c語言中字符串的函數(shù)
文章路徑:http://aaarwkj.com/article34/hhhcse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)公司、響應(yīng)式網(wǎng)站、品牌網(wǎng)站建設(shè)、網(wǎng)站營銷、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)