C語(yǔ)言教學(xué)之?dāng)?shù)組PPT課件_第1頁(yè)
C語(yǔ)言教學(xué)之?dāng)?shù)組PPT課件_第2頁(yè)
C語(yǔ)言教學(xué)之?dāng)?shù)組PPT課件_第3頁(yè)
C語(yǔ)言教學(xué)之?dāng)?shù)組PPT課件_第4頁(yè)
C語(yǔ)言教學(xué)之?dāng)?shù)組PPT課件_第5頁(yè)
已閱讀5頁(yè),還剩90頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、問(wèn) 題 如果需要處理1名學(xué)生的10門課程的成績(jī),用什么來(lái) 存儲(chǔ)這些數(shù)據(jù)? 方法一:定義10個(gè)變量,每個(gè)變量中存放1門成績(jī)。 方法二:定義一個(gè)可以存儲(chǔ)10門成績(jī)一維數(shù)組。 課程課程1課程課程2課程課程3課程課程4課程課程5課程課程6課程課程7課程課程8課程課程9課程課程1090819377926879839470第1頁(yè)/共95頁(yè)變量:杯子,一個(gè)變量只能存放一個(gè)數(shù)據(jù)數(shù)組:帶多個(gè)杯子的托盤,一個(gè)數(shù)組可以存放多個(gè)數(shù)據(jù)第2頁(yè)/共95頁(yè)數(shù)軸上的一維向量x = 1,2,-2,1,0,3; 就相當(dāng)于一維數(shù)組 第3頁(yè)/共95頁(yè)直角坐標(biāo)系中的矩陣就相當(dāng)于二維數(shù)組 第4頁(yè)/共95頁(yè)E4.1 一維數(shù)組 4.2 二維數(shù)

2、組 4.3 字符數(shù)組第5頁(yè)/共95頁(yè) 一維數(shù)組定義格式: 類型說(shuō)明符 數(shù)組名 整型常量表達(dá)式; 例如: int a10; 就定義了一個(gè)包含10個(gè)整型元素的數(shù)組a, 它的內(nèi)存大小可以存放10個(gè)整型數(shù)據(jù)。 一 維數(shù)組的定義第6頁(yè)/共95頁(yè)類型說(shuō)明符類型說(shuō)明符 數(shù)組名數(shù)組名 整型常量表達(dá)式整型常量表達(dá)式;int,char等都可以, 說(shuō)明此數(shù)組中每個(gè) 元素都屬于此類型命名規(guī)則與變量一致不能和其他變量重名指定元素的個(gè)數(shù),最小為0,不能是變量#define N 3int aN;int a3+5;int a1.5;int n;scanf(“%d”,&n);int an;int a;int a3;in

3、t a,b3;int n = 3;int an;第7頁(yè)/共95頁(yè)【例 4.1】 判斷以下數(shù)組定義是否合法,并說(shuō)明原因。 (1)int a2.5; (2) int a-3; (3)int i = 3; (4) int i; int ai; scanf(“%d”, &i); int ai; (5)#define N 3 (6)int a; int a N; int a3; (7)int a2 + 3; (8)int i, a3, b0; 第8頁(yè)/共95頁(yè)一維數(shù)組元素的引用 一維數(shù)組引用格式: 數(shù)組名下標(biāo) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9注意:1. 數(shù)組必須先定義,

4、再使用。 2. 只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組。例如:int a10; 可以使用a0、a1.a9 。若有 a=1; 或者a10 = 1; 出錯(cuò)。a10不代表整個(gè)數(shù)組,它是下標(biāo)為10的元素,越界!1第9頁(yè)/共95頁(yè)3. 下標(biāo)可以是常量或變量,它表示元素的序號(hào)。例如:int i=3, a10; ai=1; 表示給下標(biāo)為3的元素賦值為1。 4.一維數(shù)組在內(nèi)存中連續(xù)存放,先存放下標(biāo)為0的元素,再存放下標(biāo)為1的元素,依次直至存放完所有元素。第10頁(yè)/共95頁(yè)【例 4.2】定義一個(gè)包含3個(gè)整型元素的數(shù)組a,輸出其元素值。只定義數(shù)組,不給數(shù)組元素賦值,數(shù)組元素中存放的是隨機(jī)值。一般要先給數(shù)組元素

5、賦值,再使用。第11頁(yè)/共95頁(yè)數(shù)組名a中存放的是數(shù)組起始元素的地址第12頁(yè)/共95頁(yè)【例 4.3】定義一個(gè)包含3個(gè)整型元素的數(shù)組a,從鍵盤給數(shù)組元素輸入值,然后輸出。第13頁(yè)/共95頁(yè)【例 4.4】定義一個(gè)包含10個(gè)整型元素的數(shù)組a, 從鍵盤給數(shù)組元素輸入值,然后輸出。第14頁(yè)/共95頁(yè)一維數(shù)組的初始化 定義一維數(shù)組的同時(shí)給數(shù)組元素賦初值稱為一維數(shù) 組的初始化。 其一般格式為: 類型說(shuō)明符 數(shù)組名N = 初值1, 初值2, 初值N; 其中,N是表示數(shù)組元素個(gè)數(shù)的常量。第15頁(yè)/共95頁(yè) 一維數(shù)組的初始化方式有以下幾種: (1)全部元素初始化: char a3 = 1, 2, n; int b

6、5 = 2,11,3,14,5; int b = 2,11,3,14,5; int b4 = 2,11,3,14,5;在對(duì)數(shù)組的所有元素賦初值時(shí),可以不指定數(shù)組長(zhǎng)度。系統(tǒng)自動(dòng)定義其長(zhǎng)度為5初值個(gè)數(shù)不能超過(guò)數(shù)組長(zhǎng)度。否則,會(huì)出現(xiàn)語(yǔ)法錯(cuò)誤。第16頁(yè)/共95頁(yè) (2)全部元素初始化: int a10 = 0,1,2; char a10=1, 2; (3)全部元素初始化為0: int a10=0; 將a0a2依次初始化為0、1、2。未賦值的元素a3a9值全部被初始化為int中表示假的值0。 將元素a0a9 全部初始化為0將a0a1依次初始化為0、1。未賦值的元素a2a9值全部被初始化為char中表示假

7、的值0 。若想全部初始化為1int a10=1; 錯(cuò)誤第17頁(yè)/共95頁(yè)【例 4.5】定義一個(gè)含有10個(gè)元素的整型一維數(shù)組并全部初始化,將數(shù)組中所有元素逆序輸出。第18頁(yè)/共95頁(yè)【例4.64.6】 :用冒泡法對(duì)5個(gè)數(shù)排序。解:冒泡排序過(guò)程如后面圖所示,其中,紅圈以內(nèi)為已排好序的記錄。 規(guī)則:令相鄰位置的數(shù)依次比較,若上面的數(shù)大,則交換。第19頁(yè)/共95頁(yè)414135241 交換43 交換342 交換1 13 不交換34 32 交換513245 12 交換12345 12不交換結(jié)果 12345R 第0趟 第1趟 第2趟 第3趟第0次第1次第2次第3次for(i=0;iRj+1 的值)則交換 j

8、增1 for(j=0;j4i;j+) / 內(nèi)循環(huán) 如果( Rj的值R2的值) temp R1; R1 R2; R2 temp; j增加1,比較Rj 和 Rj+1的大小 如果(Rj的值Rj+1的值) j增加1,比較Rj 和 Rj+1 的大小實(shí)現(xiàn)交換43 交換R1R243 不交換4R25R32R4temp 2. 交 換 過(guò) 程 與 核 心 程 序434第21頁(yè)/共95頁(yè) int i; int j; for(i=0;i=3;i+)for(j=0;jRj+1的大小)temp Rj;Rj Rj+1;Rj+1 temp;3. 循 環(huán) 與 核 心 程 序 的 組 合 int i, j;類型一樣,合并在一起外

9、循環(huán),將處理5個(gè)數(shù)推廣到處理n個(gè)數(shù) for(i=0;i=n-2;i+)內(nèi)循環(huán)for(j=0;jRj+1)滿足交換條件,則交換;在程序中將賦值箭頭轉(zhuǎn)換為賦值等號(hào)temp=Rj;Rj=Rj+1;Rj+1=temp;標(biāo)出交換的起始位置標(biāo)出內(nèi)循環(huán)的起始位置標(biāo)出外循環(huán)的起始位置第22頁(yè)/共95頁(yè)4. 冒 泡 算法整理 int i, j ; / 定義int 類型的變量i , j int temp; / 定義新的存儲(chǔ)單元 tempfor(i=0;i=n-2;i+) / 外循環(huán) for1 / 外循環(huán)for1開始 for(j=0;jRj+1) / 比較數(shù)組R 中相鄰元素值的大小 / 開始交換 temp=Rj;

10、/ 先將Rj中的值賦給 temp Rj=Rj+1; / 再將Rj+1中的值賦給Rj Rj+1=temp; / 最后又把temp中的值賦給Rj+1 / 結(jié)束交換 / 內(nèi)循環(huán)for2結(jié)束 / 外循環(huán)for1結(jié)束 / 經(jīng)過(guò)n1=4 次循環(huán),完成排序功能第23頁(yè)/共95頁(yè)5. 冒泡算法真實(shí)程序第24頁(yè)/共95頁(yè)第25頁(yè)/共95頁(yè)6. 優(yōu)化推廣程序第26頁(yè)/共95頁(yè)第27頁(yè)/共95頁(yè)改進(jìn)的冒泡排序算法例如:待排序的數(shù)組元素為:3,1,2,5,4第28頁(yè)/共95頁(yè)313124531 交換32 交換224 不交換451 13 不交換23 34 不交換45 45 不交換 12不交換結(jié)果 12345R i=0

11、i=1j=0j=1j=2j=3排好設(shè)置一個(gè)標(biāo)識(shí)量,若某趟中一次交換也沒(méi)有進(jìn)行,設(shè)置標(biāo)識(shí)量的值,代表數(shù)據(jù)已完全排好,不需要進(jìn)行后面的排序。第29頁(yè)/共95頁(yè)【例 4.7】改進(jìn)冒泡排序算法。第30頁(yè)/共95頁(yè)第31頁(yè)/共95頁(yè)【例 4.8】從鍵盤輸入10個(gè)學(xué)生成績(jī),計(jì)算出 平均成績(jī),并輸出高于平均分的學(xué)生成績(jī)。第32頁(yè)/共95頁(yè)第33頁(yè)/共95頁(yè)【例】求fibonacci數(shù)列的前20項(xiàng),并輸出。fibonacci: 1,1,2,3,5,8,13,21 第34頁(yè)/共95頁(yè) 4.1 一維數(shù)組E4.2 二維數(shù)組 4.3 字符數(shù)組第35頁(yè)/共95頁(yè)問(wèn) 題 如果需要處理3名學(xué)生的期末成績(jī),每名學(xué)生有4門課

12、程的成績(jī),用什么來(lái)存儲(chǔ)這些數(shù)據(jù)? 方法一:定義12個(gè)變量,每個(gè)變量存儲(chǔ)1個(gè)學(xué)生的 1門課程成績(jī)。 方法二:為3名學(xué)生各定義3個(gè)數(shù)組,每個(gè)數(shù)組可以存 放4門成績(jī)。 方法三:用一個(gè)3行4列的二維數(shù)組來(lái)存儲(chǔ)。 成績(jī)表成績(jī)表數(shù)學(xué)數(shù)學(xué)英語(yǔ)英語(yǔ)計(jì)算機(jī)計(jì)算機(jī)C語(yǔ)言語(yǔ)言學(xué)生學(xué)生1928996.580學(xué)生學(xué)生288.5679070學(xué)生學(xué)生371908860第36頁(yè)/共95頁(yè)二維數(shù)組的定義 類型說(shuō)明符 數(shù)組名常量表達(dá)式M常量表達(dá)式N ; 例: float a34; 0120 1 2 3M和N只能是正整數(shù)第37頁(yè)/共95頁(yè)例:float a34第38頁(yè)/共95頁(yè)3. 二維數(shù)組在內(nèi)存中連續(xù)存放,先順序存放第一行的元素

13、,再存放第二行的元素,依次直至存放完所有元素。第39頁(yè)/共95頁(yè)二維數(shù)組的引用 數(shù)組名行下標(biāo)列下標(biāo) ; 例: int a23; a00、a01、a02 a10、a11、 a1212 15 365 8 13常出現(xiàn)的錯(cuò)誤:下標(biāo)越界!a23=3; /*應(yīng)為a12=3;*/第40頁(yè)/共95頁(yè)二維數(shù)組的初始化 1、分行賦初值: 例:int a34 = 1,2,3,4,5,6,7,8, 9,10,11,12; 1 2 3 4 5 6 7 8 9 10 11 122、全部數(shù)據(jù)寫在一個(gè)花括號(hào)內(nèi),按數(shù)組排列的順序?qū)Ω髟刭x初值:例:int a34 = 1,2,3,4,5,6,7,8,9,10,11,12;賦初值

14、時(shí),數(shù)組的行下標(biāo)可以省略,例如:int a 4 = .。第41頁(yè)/共95頁(yè) 3、對(duì)部分元素賦初值: (1) int a34 = 0,1,2; 0 1 2 0 0 0 0 0 0 0 0 0 功能: 僅對(duì)a00、a01、a02賦值,其余為0(2)int a34 = 1,5,6,9; 1 0 0 0 5 6 0 0 9 0 0 0 功能:僅對(duì)a00、a10、a11、a20賦值,其余為0第42頁(yè)/共95頁(yè)【例4.9】求一個(gè)3*4矩陣的最大值及其所在 行列下標(biāo)。第43頁(yè)/共95頁(yè)第44頁(yè)/共95頁(yè)【例4.10】3名學(xué)生各有4門課程的成績(jī),計(jì)算每個(gè)學(xué)生的平均成績(jī)。第45頁(yè)/共95頁(yè)【例4.11】打印輸出

15、楊輝三角形(輸出前10行)第46頁(yè)/共95頁(yè)第47頁(yè)/共95頁(yè)第48頁(yè)/共95頁(yè)定義格式: 類型 數(shù)組名常量表達(dá)式1常量表達(dá)式2 ;例:int a333;注意:多維數(shù)組的元素在內(nèi)存中的排列順序是按行存放。引用格式: 數(shù)組名下標(biāo)下標(biāo)例: a000=100; a012=20; a222=50;一個(gè)n維數(shù)組可以看成由多個(gè)n-1維數(shù)組構(gòu)成。第49頁(yè)/共95頁(yè) 4.1 一維數(shù)組 4.2 二維數(shù)組E4.3 字符數(shù)組第50頁(yè)/共95頁(yè) 在程序中如果要存儲(chǔ)姓名、地址等類型的數(shù)據(jù),例 如: “小明”、 “成都市高新西區(qū)西園大道1號(hào)”等需 要使用什么樣的類型呢?這些是字符串,C語(yǔ)言中 沒(méi)有專門的字符串變量,如果要

16、存儲(chǔ)字符串,需要 用到字符數(shù)組。字符數(shù)組是專門用來(lái)存放字符數(shù)據(jù) 的。字符數(shù)組中的一個(gè)元素存放一個(gè)字符。 第51頁(yè)/共95頁(yè)字符數(shù)組字符數(shù)組中可以存儲(chǔ)普通字符序列,也可以存儲(chǔ)字符串,兩者依據(jù)字符數(shù)組末尾是否有字符串結(jié)束符0來(lái)區(qū)分。例如:第52頁(yè)/共95頁(yè) (1) char c11 = “I am happy”; 或 char c = “I am happy”; (2)char c11 = “I am happy”; 或 char c = “I am happy”; (3)char c11 = I, , a, m, , h, a, p, p, y, 0; 或 char c = I, , a, m,

17、 , h, a, p, p, y, 0; (4)char c11 = I, , a, m, , h, a, p, p, y ;這四種方式,字符數(shù)組c存儲(chǔ)的是字符串第53頁(yè)/共95頁(yè) (5)char c10 = I, , a, m, , h, a, p, p, y ; 或 char c = I, , a, m, , h, a, p, p, y ;這種方式,字符數(shù)組c存儲(chǔ)的是普通字符序列第54頁(yè)/共95頁(yè)若要重新給字符數(shù)組(字符串變量)賦值,使它改而存放別的字符串,應(yīng)注意以下幾點(diǎn): (1)應(yīng)充分估計(jì)新字符串所需的最大空間,不要出 現(xiàn)越界情況。 例如:char c = “fish”;數(shù)組c的長(zhǎng)度是5

18、。 若要將“chicken”賦給c,新字符串需要8個(gè)字節(jié)的 內(nèi)存空間,就會(huì)出錯(cuò)。為了防止這類的錯(cuò)誤發(fā)生, 習(xí)慣上將字符數(shù)組長(zhǎng)度設(shè)置大一些。例如: char c20 = “fish”;第55頁(yè)/共95頁(yè) (2)不能使用賦值語(yǔ)句對(duì)字符串變量集體賦值,而 應(yīng)該使用賦值語(yǔ)句為每個(gè)字符數(shù)組元素單獨(dú)賦值。 例如: char c = “fish”;若要將數(shù)組c的內(nèi)容修改為 “cat”, 直接寫為:c = “cat”; 或者c = “cat”; 都是錯(cuò) 誤的。 可以對(duì)c中的元素逐個(gè)重新賦值:c0= c; c1= a; c2= t; c3= 0; 注意:不要省略給c3賦值為 0,否則c中新的字符 串內(nèi)容為“ca

19、th”。第56頁(yè)/共95頁(yè)字符數(shù)組的輸入輸出 一、 使用 scanf 函數(shù)輸入字符串到字符數(shù)組中。 (1)以單個(gè)字符的格式逐個(gè)輸入。 例如:char c5; scanf(“%c%c%c%c%c”,&s0,&s1, &s2,&s3, &s4);數(shù)組元素跟普通變量一樣,前面要加取地址符第57頁(yè)/共95頁(yè) (2)以字符串的格式輸入。 例如:char c5; scanf(“%s”, c); 說(shuō)明: 1. %s是字符串的格式字符,數(shù)組名代表數(shù)組的起始地址,因此輸入表列中只需要給出數(shù)組名即可。若寫為&c,程序出錯(cuò)。 2. 輸入字符串時(shí),空格或者回車鍵是輸入結(jié)

20、束符,不能作為有效的字符輸入。 第58頁(yè)/共95頁(yè) 假如從鍵盤輸入cat或者cat。數(shù)組c中存入cat后,C編譯 系統(tǒng)會(huì)自動(dòng)在后面補(bǔ)上一個(gè) 0。 3. 輸入的字符串長(zhǎng)度應(yīng)該比字符數(shù)組的長(zhǎng)度短。 例如:從鍵盤輸入catcat,數(shù)組c中存入catca,沒(méi)有 0的位 置,容易出現(xiàn)內(nèi)存錯(cuò)誤。第59頁(yè)/共95頁(yè) 4. 可以用scanf 輸入多個(gè)字符串,輸入時(shí)以空格鍵或回車鍵隔開。 例如:char c15, c25, c35; scanf(“%s%s%s”, c1, c2, c3); 從鍵盤輸入Catordog? 第60頁(yè)/共95頁(yè) 二、使用 printf 函數(shù)將字符數(shù)組中的字符串輸出。 (1)以單個(gè)字符

21、的格式逐個(gè)輸出。 例如:char c5; printf(“%c%c%c%c%c”,c0,c1, c2,c3, c4); (2)以字符串的格式輸出,將數(shù)組名寫在輸出表列中。 例如:char c5; printf(“%s”, c); 第61頁(yè)/共95頁(yè)注意: (1) 若數(shù)組長(zhǎng)度大于字符串的實(shí)際長(zhǎng)度,也只輸出到 遇到0結(jié)束。 例如:char c10=“China”; printf(“%s”,c); (2) 如果一個(gè)字符數(shù)組中包含一個(gè)以上0,則遇第一個(gè)0時(shí)輸出就結(jié)束。第62頁(yè)/共95頁(yè)【例4.12】刪除字符串中的空格,并輸出。第63頁(yè)/共95頁(yè) 三、使用scanf和 printf 為二維數(shù)組輸入輸出字

22、符串 二維數(shù)組可看作由一維數(shù)組組成。如果將一維字符數(shù) 組看作是存放字符串的變量,那么二維字符數(shù)組就可 以看作是存放字符串的一維字符串?dāng)?shù)組。 例如:定義char c35 ; 相當(dāng)于定義了3個(gè)字符串變量。 c0、 c1、 c2分別是3個(gè)字符串的起始地址??梢允?用scanf 和 printf 函數(shù)為其輸入、輸出字符串。第64頁(yè)/共95頁(yè)【例4.13】利用二維字符數(shù)組輸入、輸出字符串。第65頁(yè)/共95頁(yè)【例】 輸出一個(gè)菱形圖。第66頁(yè)/共95頁(yè)字符串處理函數(shù) C語(yǔ)言提供了多個(gè)常用的字符串處理函數(shù)。 字符串輸入函數(shù)、輸出函數(shù)、比較函數(shù)、連接 函數(shù)及求字符串長(zhǎng)度等函數(shù)。注意:字符串函數(shù)均在頭文件 str

23、ing.h 中定義,要使用這些函數(shù),需將此文件包含進(jìn)來(lái)。有的編譯器會(huì)自動(dòng)包含。第67頁(yè)/共95頁(yè) 格 式:puts(字符串) 功 能:將字符串結(jié)束符0轉(zhuǎn)換成n后輸出字符串。 例如:char c6=“China”; 執(zhí)行函數(shù):puts(c); 等價(jià)于: printf(%sn,c); puts函數(shù)也可以直接輸出字符串常量。例如:puts(“China”);第68頁(yè)/共95頁(yè)格 式:gets(字符數(shù)組) 功 能:從鍵盤輸入一個(gè)字符串到字符數(shù)組中。例如:char s10; 執(zhí)行函數(shù) : gets(s); 從鍵盤輸入:China 將包括0在內(nèi)的6個(gè)字符送到字符數(shù)組s中。第69頁(yè)/共95頁(yè)gets、put

24、s與scanf、printf函數(shù)的使用區(qū)別:(1) gets()、puts()函數(shù)一次只能輸入輸出一個(gè)字符串; scanf( )、printf( )則可以輸入輸出多個(gè)字符串。 例如:char s110, s210;1. gets(s1); gets(s2); puts(s1); puts(s2); 2. scanf(“%s%s”,s1,s2); printf(“%sn%sn”,s1,s2); 第70頁(yè)/共95頁(yè)(2)使用gets函數(shù)輸入的字符串以回車符結(jié)束;而 scanf函數(shù)以空格或回車符結(jié)束字符串的輸入。例如:char s130, s230;從鍵盤輸入HELLO WORLD! ,1. 執(zhí)行g(shù)

25、ets(s1); gets(s2); 執(zhí)行結(jié)果:s1中存入字符串“HELLO WORLD!”,光標(biāo)等待用戶再次輸入字符串,從鍵盤輸入hello world!s2中獲得字符串“hello world!”。第71頁(yè)/共95頁(yè)例如:char s130, s230;從鍵盤輸入HELLO WORLD! ,2. 執(zhí)行scanf(“%s%s”,s1,s2);執(zhí)行結(jié)果:s1中存入字符串“HELLO”,s2中存入字符串“WORLD!”。第72頁(yè)/共95頁(yè)格 式:strcat(字符數(shù)組1,字符數(shù)組2或字符串)功 能:把字符數(shù)組2中的字符串連接到字符數(shù)組1中的字符串的后面,結(jié)果放到字符數(shù)組1中。注 意:1)數(shù)組1必

26、須足夠大,以容納連接后的新字符串。2)連接時(shí)串1后面的0被覆蓋,只在新串后保留1個(gè)0字符數(shù)組2可為字符串常量,1呢?第73頁(yè)/共95頁(yè)例如:char s10 = “te”; strcat(s, “st!”); 執(zhí)行過(guò)程中數(shù)組s的存儲(chǔ)情況:第74頁(yè)/共95頁(yè)【例4.14】使用strcat函數(shù)實(shí)現(xiàn)兩個(gè)字符串連接的功能。第75頁(yè)/共95頁(yè)【例4.15】不使用strcat函數(shù)實(shí)現(xiàn)兩個(gè)字符串連接的功能。第76頁(yè)/共95頁(yè) 格 式:strcpy(字符數(shù)組1,字符數(shù)組2或字符串) 功 能:將字符串2復(fù)制到字符數(shù)組1中,該字符數(shù)組1 中原有內(nèi)容被覆蓋。說(shuō)明:(1)字符數(shù)組1必須足夠大,能容納復(fù)制過(guò)來(lái)的字符串(

27、2)復(fù)制時(shí)連同0一起復(fù)制到字符數(shù)組1中。第77頁(yè)/共95頁(yè) (3)不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組 直接賦給一個(gè)字符數(shù)組。 例如:char str130 = “China”,str230; str2 = str1; (4)可以用strncpy函數(shù)將字符串2中的前n個(gè)字符 復(fù)制到字符數(shù)組中。字符數(shù)組其他位置的元素不發(fā) 生變換。 例如: char str130 = Chengdu; char str230 = Beijing; strncpy(str1,str2,2); 執(zhí)行結(jié)果:str1為Beengdu。第78頁(yè)/共95頁(yè)【例4.16】使用strcpy函數(shù)實(shí)現(xiàn)字符串的拷貝。第79頁(yè)/共95頁(yè)【例4.17】不使用strcpy函數(shù)實(shí)現(xiàn)字符串的拷貝。第80頁(yè)/共95頁(yè)格 式:strcmp(字符串1,字符串2)功 能:比較“字符串1”和“字符串2”。比較規(guī)則:自左至右逐個(gè)字符比較ASCII碼,直到遇到不同字符或0,比較的結(jié)果由函數(shù)值帶回。 字符串1 字符串2, 函數(shù)返回正整數(shù)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論