10.1字符串與字符數(shù)組
1.字符數(shù)組的定義
定義方法與前面介紹的類似,只是將數(shù)組定義為字符型即可。例如:
charc[10];
這里定義了一個(gè)包含10個(gè)元素的字符數(shù)組c。
2.字符數(shù)組的初始化
對(duì)字符數(shù)組初始化,可以采用以下方法:
(1)逐個(gè)字符賦給數(shù)組中各元素;
(2)用字符串常量使字符數(shù)組初始化。
3.字符串
在C語(yǔ)言中,字符串是作為字符數(shù)組來(lái)處理的,字符串可以存放在字符型一維數(shù)組中,故可以把字符型一維數(shù)組作為字符串變量。
字符串常量是用雙引號(hào)括起來(lái)的一串字符。
C語(yǔ)言中約定用′\0′作為字符串的結(jié)束標(biāo)志,它占內(nèi)存空間,但不計(jì)入串的長(zhǎng)度,′\0′的代碼值為0。
系統(tǒng)對(duì)字符串常量也自動(dòng)加一個(gè)′\0′作為結(jié)束符。例如″clanguage″共有10個(gè)字符,但在內(nèi)存中占11個(gè)字節(jié),最后一個(gè)字節(jié)存放′\0′。
4.字符數(shù)組的輸入輸出
(1)逐個(gè)字符輸入和輸出
、僭跇(biāo)準(zhǔn)輸入輸出printf和scanf中使用%c格式描述符;
、谑褂胓etchar和putchar函數(shù)。例如:
for(i=0;i<10;i++)
scanf(″%c″,&str[i]);/*或str[i]=getchar();*/
str[i]=′\0′;/*人為加上串結(jié)束標(biāo)志*/
for(i=0;i<10;i++)
printf(″%c″,str[i]);/*或putchar(str[i]);*/
(2)字符串整體輸入輸出
、僭跇(biāo)準(zhǔn)輸入輸出函數(shù)printf和scanf中使用%s格式描述符;
輸入形式:
charstr[6];
scanf(″%s″,str);
其中str為字符數(shù)組名,代表著str字符數(shù)組的起始地址,輸入時(shí)系統(tǒng)自動(dòng)在每個(gè)字符串后加入結(jié)束符′\0′。若同時(shí)輸入多個(gè)字符串,則以空格或回車符分隔。
輸入形式:
printf(″%s″,str);
輸字符串時(shí),遇第一個(gè)′\0′即結(jié)束。但可人為控制輸出串所占的域?qū)捜纾?/P>
printf(″%6s″,str);/*若字符串中字符多于6個(gè),仍將全部輸出*/
printf(″%-6s″,str);/*只輸出前6個(gè)字符,多余的不輸出*/
、谑褂胓ets和puts函數(shù)輸入輸出一行
gets函數(shù)用來(lái)從終端鍵盤讀字符,直到遇換行符為止,換行符不屬字符串的內(nèi)容。
調(diào)用形式:
gets(str);
str為字符數(shù)組名或字符指針,字符串輸入后,系統(tǒng)自動(dòng)將′\0′置于串尾代替換行符。若輸入串長(zhǎng)超出數(shù)組定義長(zhǎng)度時(shí),系統(tǒng)報(bào)錯(cuò)。
Puts函數(shù)用來(lái)把字符串的內(nèi)容顯示在屏幕上。
調(diào)用形式:
puts(str);
str的含義同上。輸出時(shí),遇到第一個(gè)′\0′結(jié)束并自動(dòng)換行,字符串中可以含轉(zhuǎn)義字符。
2015年全國(guó)職稱計(jì)算機(jī)考試教材(2007模 .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書籍 | |
全國(guó)職稱計(jì)算機(jī)考試速成過(guò)關(guān)系列套裝:W .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書籍 |