Posted on 2008-04-22 13:09
silentneil 閱讀(253)
評(píng)論(0) 編輯 收藏 引用
第4章 順序結(jié)構(gòu)程序設(shè)計(jì)
4.1 C語(yǔ)句概述
1. C的程序結(jié)構(gòu)
一個(gè)C程序由若干個(gè)源程序文件組成;一個(gè)源程序由預(yù)處理命令、全局變量說(shuō)明和若干個(gè)函數(shù)組成;一個(gè)函數(shù)由函數(shù)首部和函數(shù)體組成;一個(gè)函數(shù)體由局部變量聲明和執(zhí)行語(yǔ)句組成。
P67,圖4.1。
2. C程序的語(yǔ)句
C程序的語(yǔ)句的語(yǔ)句分為5類:
(1)控制語(yǔ)句
用來(lái)控制程序流程的語(yǔ)句。
P68,①~⑨
P68,例。
注意:( )表示其中是一個(gè)條件,~表示內(nèi)嵌語(yǔ)句。
(2)函數(shù)調(diào)用語(yǔ)句
由一次函數(shù)調(diào)用加一個(gè)分號(hào)購(gòu)成的語(yǔ)句。
P68,例。
注意:函數(shù)有庫(kù)函數(shù)與自定義函數(shù)兩種,自定義函數(shù)要先定義后調(diào)用。
(3)表達(dá)式語(yǔ)句
由一個(gè)表達(dá)式加一個(gè)分號(hào)購(gòu)成的語(yǔ)句。
P68,例。
注意:表達(dá)式語(yǔ)句與表達(dá)式的區(qū)別在于有無(wú)分號(hào)。
(4)空語(yǔ)句
只由一個(gè)分號(hào)購(gòu)成的語(yǔ)句。
P68,例。
注意:空語(yǔ)句不做任何事情。
(5)復(fù)合語(yǔ)句
把多個(gè)語(yǔ)句用{ }括起來(lái)的語(yǔ)句。
P69,例。
注意:復(fù)合語(yǔ)句構(gòu)成一個(gè)分程序,內(nèi)可包含數(shù)據(jù)聲明和執(zhí)行語(yǔ)句兩部分。
4.2 賦值語(yǔ)句
賦值語(yǔ)句是表達(dá)式語(yǔ)句的一種最常用的形式,與其它高級(jí)語(yǔ)言相比,C的賦值語(yǔ)句有其獨(dú)特之處:
(1)在C中“=”是一個(gè)運(yùn)算符;
(2)在C中賦值語(yǔ)句可以包括在其它表達(dá)式中。
P69,例。
4.3 數(shù)據(jù)輸入輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)
(1)把數(shù)據(jù)從外部設(shè)備送到計(jì)算機(jī)內(nèi)存稱為輸入,把數(shù)據(jù)從計(jì)算機(jī)內(nèi)存送到外部設(shè)備稱為輸出。外部設(shè)備有鍵盤、顯示器、磁盤等。
(2)C本身沒(méi)有輸入輸出的語(yǔ)句,C的輸入輸出是由一批庫(kù)函數(shù)來(lái)實(shí)現(xiàn)的。這些庫(kù)函數(shù)有:scanf、printf、getchar、putchar、gets、puts等,它們放在名為stdio.h的庫(kù)函數(shù)文件中。
(3)一般要使用這些庫(kù)函數(shù)時(shí),要在程序頭加上
#include <stdio.h> 或 #include “stdio.h”
的預(yù)編譯命令,其作用是把這些庫(kù)函數(shù)包含到本程序中來(lái)。
P71,例。
4.4 字符數(shù)據(jù)的輸入與輸出
4.4.1 字符輸出函數(shù)putchar
格式:putchar(字符變量);
功能:把字符變量中的字符輸出到顯示器。
注意:putchar函數(shù)一般作為一個(gè)語(yǔ)句來(lái)使用。
P71,例4.1。見(jiàn)ex4-1.c。
4.4.2 字符輸入函數(shù)getchar
格式:getchar( )
功能:從鍵盤輸入一個(gè)字符并通過(guò)函數(shù)名返回這個(gè)字符。
注意:getchar函數(shù)一般在在表達(dá)式中使用。
P72,例4.2。
4.5 格式輸入與輸出
4.5.1 格式輸出函數(shù)printf
1. 一般格式
格式:printf(格式控制,輸出表列);
功能:按照“格式控制”中的格式要求輸出“輸出表列”的值。
P72,例。
(1)“格式控制”是一個(gè)用雙撇號(hào)括起來(lái)的字符串,它包括兩種信息:
①格式說(shuō)明:由%和格式字符組成,不同的格式字符指明了不同的輸出方式。
②普通字符:即要原樣輸出的字符。
P72,例。
(2)“輸出表列”是要輸出的一些數(shù)據(jù),可以是表達(dá)式。
P73,例。
2. 格式字符
(1)d格式符:用來(lái)輸出十進(jìn)制整數(shù)。
可有四種用法:%d,%md,%ld,%-d。
其中:m表示輸出寬度,l表示輸出長(zhǎng)整數(shù),-表示輸出左對(duì)齊。
P73,例。
(2)o格式符:用來(lái)輸出八進(jìn)制整數(shù)。
同樣可以附加m,l,- 等。
注意:符號(hào)位當(dāng)成數(shù)據(jù)輸出,不會(huì)輸出負(fù)數(shù)。
P74,例。
(3)x格式符:用來(lái)輸出十六進(jìn)制整數(shù)。
同樣可以附加m,l,- 等。
注意:符號(hào)位當(dāng)成數(shù)據(jù)輸出,不會(huì)輸出負(fù)數(shù)。
P74,例。
(4)u格式符:用來(lái)輸出無(wú)符號(hào)數(shù)據(jù)。
同樣可以附加m,l,- 等。
P74,例4.3。
(5)c格式符:用來(lái)輸出一個(gè)字符。
可以附加m,- 等。
P74,例4.4。
(6)s格式符:用來(lái)輸出一個(gè)字符串。
除了可以附加m,- 外,還可以寫(xiě)成 %m.ns。
其中:m.n表示寬度為m,只輸出字符串左邊n個(gè)字符。
P75,例4.5。
(7)f格式符:用來(lái)小數(shù)形式輸出一個(gè)實(shí)數(shù)。
除了可以附加m,- 外,還可以寫(xiě)成 %m.nf。
其中:m.n表示寬度為m,保留n位小數(shù)。
P76,例4.6,例4.7,例4.8。
(8)e格式符:用來(lái)指數(shù)形式輸出一個(gè)實(shí)數(shù)。
除了可以附加m,- 外,還可以寫(xiě)成 %m.nf。
其中:m.n表示寬度為m,小(尾)數(shù)部分保留n位小數(shù)。
P77,例。
(9)g格式符:用來(lái)輸出一個(gè)實(shí)數(shù),形式自動(dòng)取小數(shù)和指數(shù)中的較短者。
P77,例。
P77,表4.1。
4.5.2 格式輸入函數(shù)scanf
1. 一般格式
格式:scanf(格式控制,地址表列);
功能:按照“格式控制”中的格式要求輸入數(shù)據(jù)到“地址表列”的相應(yīng)變量中。
(1)“格式控制”是一個(gè)用雙撇號(hào)括起來(lái)的字符串,它包括兩種信息:
①格式說(shuō)明:由%和格式字符組成,不同的格式字符指明了不同的輸入方式。
②普通字符:即要原樣輸入的字符。
P72,例。
(2)“地址表列”是要輸入的變量的地址,一般用地址運(yùn)算符&求得。
P79,例4.9。
2. 格式字符
scanf函數(shù)的格式字符與printf函數(shù)類似,但有微小區(qū)別。
P80,表4.3,表4.4。
說(shuō)明:P80,(1)~(4)。
3. 使用scanf函數(shù)應(yīng)請(qǐng)注意的問(wèn)題
(1)“格式控制”后面是變量的地址,而不是變量。
P81,例。
(2)如果在“格式控制”中有格式說(shuō)明符外的其它字符,要原樣輸入。
P81,例。
(3)用%c輸入字符時(shí),空格、回車符等都作為有效字符輸入。
P82,例。
(4)在輸入數(shù)據(jù)時(shí),遇到空格、回車、跳格、限寬、非法等會(huì)結(jié)束輸入。
P82,例。
4.6 順序結(jié)構(gòu)程序設(shè)計(jì)舉例
P82,例4.10。見(jiàn)ex4-10.c。
P83,例4.11。見(jiàn)ex4-11.c。
P84,例4.12。見(jiàn)ex4-12.c。
第5章 選擇結(jié)構(gòu)程序設(shè)計(jì)
5.1 關(guān)系運(yùn)算符和關(guān)系表達(dá)式
5.1.1 關(guān)系運(yùn)算符及其優(yōu)先次序
(1)運(yùn)算符:>、>=、<、<=、= =、!=
(2)優(yōu)先級(jí):①>、>=、<、<= ②= =、!=
低于算術(shù)運(yùn)算,高于賦值運(yùn)算
(3)結(jié)合方向:從左到右
P88,例。
5.1.2 關(guān)系表達(dá)式
用關(guān)系運(yùn)算符把兩個(gè)表達(dá)式連接起來(lái)的式子稱為關(guān)系表達(dá)式。
關(guān)系表達(dá)式的值為真(1)或假(0)。
P88,例。
5.2 邏輯運(yùn)算符和邏輯表達(dá)式
5.2.1 邏輯運(yùn)算符及其優(yōu)先次序
(1)運(yùn)算符:&&、||、!
(2)優(yōu)先級(jí):①! ②&& ③||
!與單目+、-同級(jí),&&、||低于關(guān)系運(yùn)算
(3)結(jié)合方向:! 從右到左,&&、|| 從左到右
P89,例。
5.2.2 邏輯表達(dá)式
用邏輯運(yùn)算符把兩個(gè)表達(dá)式連接起來(lái)的式子稱為邏輯表達(dá)式。
邏輯表達(dá)式的值為真(1)或假(0),判斷時(shí)非0是真、0是假。
P89,例。
注意:(1)a&&b&&c的判斷,a為0則表達(dá)式為0,a為1、b為0則表達(dá)式為0,a為1、b為1、c為0則表達(dá)式為0,否則表達(dá)式為1。
(2)a||b||c的判斷,a為1則表達(dá)式為1,a為0、b為1則表達(dá)式為1,a為0、b為0、c為1則表達(dá)式為1,否則表達(dá)式為0。
P91,例。
5.3 If語(yǔ)句
5.3.1 if語(yǔ)句的三種形式
1. 單分支if語(yǔ)句
格式1:if (表達(dá)式) 語(yǔ)句
功能1:如果表達(dá)式為真,則執(zhí)行語(yǔ)句。
P91,例。
2. 雙分支if語(yǔ)句
格式2:if (表達(dá)式) 語(yǔ)句1
else 語(yǔ)句2
功能2:如果表達(dá)式為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。
P92,例。
3. 多分支if語(yǔ)句
格式3:if (表達(dá)式1) 語(yǔ)句1
else if (表達(dá)式2) 語(yǔ)句2
… …
else if (表達(dá)式n) 語(yǔ)句n
else 語(yǔ)句n+1
功能3:如果直到表達(dá)式i為真,則執(zhí)行語(yǔ)句i,否則表達(dá)式全為假,則執(zhí)行語(yǔ)句n+1。
P92,例。
注意:(1)每個(gè)語(yǔ)句都是以分號(hào)結(jié)束的;
(2)if或else后只能一個(gè)語(yǔ)句,如有多個(gè)語(yǔ)句要用{ }括起來(lái)。
P93,例5.1,例5.2。
5.3.2 if語(yǔ)句的嵌套
if語(yǔ)句可以嵌套,原則是else與它最近的if配對(duì),如果在內(nèi)層嵌套中要使用單分支if語(yǔ)句,要用{ }把它括起來(lái)。
P94,例,例5.3。
5.3.3 條件運(yùn)算符
1 運(yùn)算符:? :
2 優(yōu)先級(jí):低于邏輯運(yùn)算,高于賦值運(yùn)算
3 結(jié)合方向:從右向左
(4) 條件表達(dá)式:
格式:表達(dá)式1? 表達(dá)式2: 表達(dá)式3
功能:若表達(dá)式1為真,則條件表達(dá)式取表達(dá)式2,否則取表達(dá)式3。
P96,例。
注意:表達(dá)式2與表達(dá)式3二者的類型取高的。P37。
P98,例,例5.4。
5.4 Switch語(yǔ)句
格式:switch (表達(dá)式)
{case 常量表達(dá)式1:語(yǔ)句1
case 常量表達(dá)式2:語(yǔ)句2
… …
case 常量表達(dá)式n:語(yǔ)句n
[default:語(yǔ)句n+1]
}
功能:如果表達(dá)式的值等于常量表達(dá)式i,則執(zhí)行語(yǔ)句i及其后面的語(yǔ)句,否則如果都不等,則執(zhí)行語(yǔ)句n+1。
P99,例。
注意:(1)表達(dá)式可以是任何類型的;
(2)常量表達(dá)式的值不能相同;
(3)各case和default出現(xiàn)次序無(wú)關(guān);
(4)可用break中斷執(zhí)行后續(xù)語(yǔ)句;
(5)多個(gè)case可共用一組執(zhí)行語(yǔ)句。
P99,例。
5.5 程序舉例
P100,例5.5。見(jiàn)ex5-5-1.c,ex5-5-2.c。
P101,例5.6。
P103,例5.7。見(jiàn)ex5-7。
第6章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
6.1 概述
在C語(yǔ)言中,構(gòu)成循環(huán)的語(yǔ)句有4種:
1 用goto和if語(yǔ)句;
2 用while語(yǔ)句;
3 用do-while語(yǔ)句;
4 用for語(yǔ)句。
6.2 goto語(yǔ)句以及用goto語(yǔ)句構(gòu)成循環(huán)
格式:goto 語(yǔ)句標(biāo)號(hào);
功能:無(wú)條件轉(zhuǎn)到語(yǔ)句標(biāo)號(hào)指定的語(yǔ)句中去執(zhí)行。
注意:(1)語(yǔ)句標(biāo)號(hào)應(yīng)是合法的標(biāo)識(shí)符,可放在任何語(yǔ)句的前面。
(2)用goto語(yǔ)句構(gòu)成循環(huán)不是一種很好的方法。
P106,例,例6.1。
6.3 while語(yǔ)句
格式:while (表達(dá)式)
循環(huán)體;
功能:當(dāng)表達(dá)式為真時(shí)執(zhí)行循環(huán)體的語(yǔ)句,直到表達(dá)式為假時(shí)退出循環(huán)。
P107,例6.2。
注意:(1)循環(huán)體只能一個(gè)語(yǔ)句,如有多個(gè)語(yǔ)句要用{ }括起來(lái)。
(2)循環(huán)體內(nèi)應(yīng)有使循環(huán)趨于結(jié)束的語(yǔ)句,否則構(gòu)成死循環(huán)。
(3)循環(huán)體可能一次也沒(méi)執(zhí)行到,當(dāng)條件表達(dá)式為真時(shí)進(jìn)入循環(huán)體,故也稱當(dāng)型循環(huán)。
6.4 do-while語(yǔ)句
格式:do
循環(huán)體;
while (表達(dá)式);
功能:先執(zhí)行一次循環(huán)體,然后當(dāng)表達(dá)式為真時(shí)再執(zhí)行循環(huán)體,直到表達(dá)式為假時(shí)退出循環(huán)。
P108,例6.3,例6.4。
注意:(1)循環(huán)體只能一個(gè)語(yǔ)句,如有多個(gè)語(yǔ)句要用{ }括起來(lái)。
(2)循環(huán)體內(nèi)應(yīng)有使循環(huán)趨于結(jié)束的語(yǔ)句,否則構(gòu)成死循環(huán)。
(3)循環(huán)體至少執(zhí)行一次,直到條件表達(dá)式為假時(shí)退出循環(huán),故也稱直到型循環(huán)。
6.5 for語(yǔ)句
格式:for (初值表達(dá)式;條件表達(dá)式;修正表達(dá)式)
循環(huán)體;
功能:先執(zhí)行一次初值表達(dá)式,再執(zhí)行條件表達(dá)式,若為真則執(zhí)行循環(huán)體,然后執(zhí)行修正表達(dá)式,再次執(zhí)行條件表達(dá)式進(jìn)行判斷,直到條件表達(dá)式為假時(shí)退出循環(huán)。
P110,例。
注意:(1)循環(huán)體只能一個(gè)語(yǔ)句,如有多個(gè)語(yǔ)句要用{ }括起來(lái)。
(2)可以明顯看出循環(huán)體執(zhí)行的次數(shù),故也稱計(jì)數(shù)循環(huán)。
(3)三個(gè)表達(dá)式在一定的條件下都可省。
P111,說(shuō)明(1)~(7)。
6.6 循環(huán)的嵌套
四種循環(huán)可以互相嵌套,此時(shí)外層循環(huán)的每一取值,內(nèi)層循環(huán)要轉(zhuǎn)一圈。但是循環(huán)嵌套不得交叉進(jìn)行。
P113,說(shuō)明(1)~(6)。
6.7 幾種循環(huán)的比較
4 四種循環(huán)可以用來(lái)處理同一問(wèn)題,但一般不用goto循環(huán)。
5 while和do-while循環(huán)在循環(huán)體內(nèi)應(yīng)有使循環(huán)趨于結(jié)束的語(yǔ)句,for可用修正表達(dá)式來(lái)實(shí)現(xiàn)。
6 while和do-while循環(huán)在循環(huán)前應(yīng)有初始化的操作,for可用初值表達(dá)式來(lái)實(shí)現(xiàn)。
7 while和do-while及for循環(huán)可用break語(yǔ)句跳出循環(huán)和用continue語(yǔ)句結(jié)束本次循環(huán),而goto循環(huán)不可以用。
6.8 break語(yǔ)句和continue語(yǔ)句
6.8.1 break語(yǔ)句
格式:break;
功能:退出switch選擇或while、do-while、for循環(huán)結(jié)構(gòu)。
P114,例。
6.8.2 contiune語(yǔ)句
格式:contiune;
功能:本次while、do-while、for循環(huán)提前結(jié)束,進(jìn)入下次循環(huán)。
P115,例。
P115,例6.5。
6.9 程序舉例
P116,例6.6。見(jiàn)ex6-6。
P116,例6.7。見(jiàn)ex6-7。
P118,例6.8。
P118,例6.9。見(jiàn)ex6-9。
P119,例6.10。見(jiàn)ex6-10。
第7章 數(shù)組
數(shù)組是由相同類型的一組數(shù)據(jù)構(gòu)成的。前面我們所學(xué)的類型都是基本類型,而本章所學(xué)的數(shù)組是一種構(gòu)造類型。
7.1 一維數(shù)組的定義和引用
7.1.1 一維數(shù)組的定義
格式:類型標(biāo)識(shí)符 數(shù)組名[常量表達(dá)式],…;
其中:數(shù)組名是標(biāo)識(shí)符,常量表達(dá)式是元素個(gè)數(shù)。
功能:定義一維數(shù)組,其數(shù)組名由其“數(shù)組名”指定,元素個(gè)數(shù)由“常量表達(dá)式”指定,元素類型由“類型標(biāo)識(shí)符”指定。
P122,例。
注意:(1)C語(yǔ)言中數(shù)組的下標(biāo)從0開(kāi)始;
(2)常量表達(dá)式中可以有符號(hào)常量,但不能含有變量;
(3)數(shù)組一旦定義,系統(tǒng)為它分配一個(gè)連續(xù)的存儲(chǔ)空間。
7.1.2 一維數(shù)組元素的引用
格式:數(shù)組名[下標(biāo)表達(dá)式]
功能:引用已定義的數(shù)組元素
P123,例,例7.1。
注意:(1)下標(biāo)可以是表達(dá)式。
(2)下標(biāo)的取值為0~常量表達(dá)式-1,超出范圍可能有不可預(yù)料的后果。
7.1.3 一維數(shù)組的初始化
在定義一維數(shù)組時(shí),可對(duì)數(shù)組進(jìn)行初始化。
方法:在定義數(shù)組時(shí)在數(shù)組名后加上={初始值,初始值,…,初始值}
P123,例。
注意:(1)可對(duì)部分元素初始化。
(2)數(shù)組有進(jìn)行初始化時(shí)常量表達(dá)式可省。
7.1.4 一維數(shù)組程序舉例
P124,例7.2。
P124,例7.3。見(jiàn)ex7-3.c。
7.2 二維數(shù)組的定義和引用
7.2.1 二維數(shù)組的定義
格式:類型標(biāo)識(shí)符 數(shù)組名[常量表達(dá)式][ 常量表達(dá)式],…;
功能:定義二維數(shù)組,其數(shù)組名由其“數(shù)組名”指定,每維下標(biāo)的取值范圍由該維的“常量表達(dá)式”指定,元素類型由“類型標(biāo)識(shí)符”指定。
P125,例。
注意:(1)多維數(shù)組的定義與二維數(shù)組類似;
(2)二維數(shù)組常用來(lái)描述數(shù)學(xué)中的矩陣;
(3)對(duì)于一個(gè)m×n的二維數(shù)組,二維數(shù)組與一維數(shù)組元素的對(duì)應(yīng):
二維中第i,j個(gè)元素←→一維中第i×n+j個(gè)元素
P126,例。
7.2.2 二維數(shù)組的引用
格式:數(shù)組名[下標(biāo)表達(dá)式] [下標(biāo)表達(dá)式]
功能:引用已定義的二維數(shù)組元素
P126,例。
注意:設(shè)a是一個(gè)m×n二維數(shù)組;則
(1)a[i] (對(duì)任意固定的i=0,1,…,m-1)是一個(gè)長(zhǎng)度為n的一維數(shù)組,它的數(shù)組名就是a[i],每個(gè)元素是a[i][j];
(2)a可認(rèn)為是一個(gè)長(zhǎng)度為m一維數(shù)組,它的數(shù)組名就是a,每個(gè)元素是a[i];
(3)由上可知,二維數(shù)組可認(rèn)為是一個(gè)元素是一維數(shù)組的一維數(shù)組。
7.2.3 二維數(shù)組的初始化
在定義二維數(shù)組時(shí),也可對(duì)數(shù)組進(jìn)行初始化。
方法:在定義數(shù)組時(shí)在數(shù)組名后加上={{初始值,…},{初始值,…},…,{初始值,…}}或者加上={初始值,初始值,…,初始值}
P127,例。
注意:(1)可對(duì)部分元素初始化;
(2)二維以上數(shù)組有進(jìn)行初始化時(shí)第一維的常量表達(dá)式可省。
P128,例。
7.2.4 二維數(shù)組應(yīng)用舉例
P128,例7.4。
P129,例7.5。見(jiàn)ex7-5.c。
7.3 字符數(shù)組和字符串
7.3.1 字符數(shù)組
字符數(shù)組:元素類型為字符型的數(shù)組稱為字符數(shù)組。
格式:char 數(shù)組名[常量表達(dá)式],…;
P130,例。
注意:長(zhǎng)度為n的字符數(shù)組可用來(lái)存放n個(gè)字符。
7.3.2 字符數(shù)組的初始化
與普通數(shù)組一樣,可對(duì)字符數(shù)組進(jìn)行初始化。
方法:在定義數(shù)組時(shí)在數(shù)組名后加上={字符,字符,…,字符}
P130,例。
注意:初始化時(shí)元素個(gè)數(shù)可不寫(xiě)。
7.3.3 字符數(shù)組的引用
字符數(shù)組的每個(gè)元素存放的是一個(gè)字符。
格式:數(shù)組名[下標(biāo)表達(dá)式]
P131,例7.6,例7.7。
7.3.4 字符串和字符串結(jié)束標(biāo)志
(1)字符串
由若干個(gè)字符兩邊用雙撇號(hào)括起來(lái)的稱字符串。
字符串存放時(shí)應(yīng)在尾部加一個(gè)\0作為結(jié)束標(biāo)志。
長(zhǎng)度為n的字符存儲(chǔ)時(shí)占用n+1個(gè)字節(jié)的存儲(chǔ)空間。
P131,例。
(2)用字符數(shù)組存放字符串
長(zhǎng)度為n的字符數(shù)組可用來(lái)存放一個(gè)長(zhǎng)度為n-1的字符串。
字符數(shù)組可用字符串進(jìn)行整體初始化,且此時(shí)會(huì)自動(dòng)在尾部加一個(gè)\0。
P132,例。
7.3.5 字符數(shù)組的輸入與輸出
字符數(shù)組輸入輸出的方法有兩種:
(1)逐個(gè)元素用scanf和printf函數(shù)輸入輸出
格式:scanf(“%c”,&數(shù)組元素);
printf (“%c”,數(shù)組元素);
功能:前者從鍵盤上取得一個(gè)字符送給相應(yīng)的數(shù)組元素;
后者把數(shù)組元素中的字符輸出到顯示器上。
P131,例7.6。
(2)整個(gè)字符數(shù)組用scanf和printf函數(shù)輸入輸出
格式:scanf(“%s”,數(shù)組名);
printf (“%s”,數(shù)組名);
功能:前者從鍵盤上取得一個(gè)字符串送給相應(yīng)的數(shù)組;
后者把數(shù)組中的整個(gè)字符串輸出到顯示器上。
P133,例。
注意:(1)整個(gè)字符數(shù)組中的字符串輸出時(shí),\0本身不輸出, 且輸出不換行;
(2)整個(gè)字符數(shù)組中的字符串輸出時(shí),是從首地址逐一輸出的,直到遇到第一個(gè)\0為止;
(3)C語(yǔ)言中數(shù)組名表示該數(shù)組的首地址,故整個(gè)字符數(shù)組輸入時(shí)不能在數(shù)組名前加&;
(4)整個(gè)字符數(shù)組輸入時(shí)遇空格而停止,且會(huì)自動(dòng)在尾部加一個(gè)\0。
P133,例。
7.3.6 字符串處理函數(shù)
1. 字符串輸出函數(shù)puts
格式:puts(字符數(shù)組名);
功能:輸出字符數(shù)組中的字符串。
P135,例。
2. 字符串輸入函數(shù)gets
格式:gets(字符數(shù)組名);
功能:從鍵盤輸入一個(gè)字符串到字符數(shù)組中。
P135,例。
注意:(1)gets與puts一次只能輸入輸出一個(gè)字符串;
(2)gets輸入時(shí)不會(huì)遇空格而停止,而是遇換行符而停止,也會(huì)在尾部自動(dòng)加上一個(gè)\0;
(3)puts輸出時(shí)也是到\0為止,還會(huì)把\0轉(zhuǎn)成換行符輸出。
3. 字符串連接函數(shù)strcat
格式:strcat(字符串1, 字符串2);
功能:把字符串2的內(nèi)容連接到字符串1之后,函數(shù)返回字符串1。
注意:連接時(shí)把第二個(gè)字符串的第一個(gè)字符覆蓋到第一個(gè)字符串的\0上
P136,例。
4. 字符串拷貝函數(shù)strcpy
格式:strcpy(字符串1,字符串2);
功能:把字符串2的內(nèi)容拷貝到字符串1中,函數(shù)返回字符串1。
注意:(1)拷貝時(shí)也是到第一個(gè)\0為止,連同\0一起拷貝;
(2)對(duì)字符串不可有賦值語(yǔ)句:字符串1=字符串2;
P136,例。
5. 字符串比較函數(shù)strcmp
格式:strcmp(字符串1,字符串2);
功能:比較字符串1與的字符串2內(nèi)容:如果字符串1= =字符串2,則返回0;如果字符串1>字符串2,則返回正整數(shù);如果字符串1<字符串2,則返回負(fù)整數(shù)。
注意:比較時(shí)是以字符的ASCII值進(jìn)行的。
P137,例。
6. 測(cè)字符串長(zhǎng)度函數(shù)strlen
格式:strlen(字符串)
功能:返回字符串的實(shí)際字符數(shù)。
注意:(1)測(cè)字符串長(zhǎng)度包括空格,但不包括\0;
(2)遇到\開(kāi)頭的特殊字符也當(dāng)一個(gè)字符對(duì)待。
P138,例。
7. 字符換小寫(xiě)函數(shù)strlwr
格式:strlwr(字符串)
功能:把字符串中的大寫(xiě)字母換成小寫(xiě)字母。
8. 字符換大寫(xiě)函數(shù)strupr
格式:strupr(字符串)
功能:把字符串中的小寫(xiě)字母換成大寫(xiě)字母。
7.3.7 字符數(shù)組應(yīng)用舉例
P138,例7.8。見(jiàn)ex7-8.c。
P140,例7.9。見(jiàn)ex7-9.c。