




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、123保存大量保存大量同類型的同類型的相關(guān)數(shù)據(jù)相關(guān)數(shù)據(jù)45a9a8a7 a1a0數(shù)組首地址數(shù)組首地址基類型基類型下標(biāo)從下標(biāo)從0開(kāi)始開(kāi)始6a9a8a7 a1a078如:如: int a5=6,2,3;int a5=6,2,3;等價(jià)于等價(jià)于: : a0=6; a1=2;a2=3; a3=0; a4=0;a0=6; a1=2;a2=3; a3=0; a4=0; int a=1,2,3,4,5,6;int a=1,2,3,4,5,6;編譯系統(tǒng)根據(jù)初值個(gè)數(shù)確定數(shù)組編譯系統(tǒng)根據(jù)初值個(gè)數(shù)確定數(shù)組長(zhǎng)度(元素個(gè)長(zhǎng)度(元素個(gè)數(shù)數(shù))int a5=0int a5=0,0 0,0 0,0 0,00; 或或 int a5
2、=0int a5=0;910main() int a4 = 1,2,3,4, b4; b = a; 解決方法解決方法 方法方法1:1:逐個(gè)元素賦值逐個(gè)元素賦值 b0=a0; b1=a1; b2=a2; b3=a3; 方法方法2:2:通過(guò)循環(huán)賦值通過(guò)循環(huán)賦值 int i; for (i=0;i4;i+) bi = ai; 原因原因: :數(shù)組名表示數(shù)組的首地址數(shù)組名表示數(shù)組的首地址, ,其值不可改變其值不可改變! !11121312345612078910111415只能逐個(gè)對(duì)數(shù)組元素進(jìn)行操作(字符數(shù)組例外)只能逐個(gè)對(duì)數(shù)組元素進(jìn)行操作(字符數(shù)組例外)int a10,i;scanf( %d ,&am
3、p;ai);for (i=0;i10;i+) scanf( %d ,&ai);printf( %d ,ai);for (i=0;i10;i+) printf( %d ,ai);16程序運(yùn)行結(jié)果:81 64 49 36 25 16 9 4 1 017步驟步驟: :1. 1. 輸入輸入:for:for循環(huán)輸入循環(huán)輸入1010個(gè)整數(shù)個(gè)整數(shù)2. 2. 處理處理: :(a) (a) 先令先令max=min=x0max=min=x0(b) (b) 依次用依次用xixi和和max,minmax,min比較比較( (循環(huán)循環(huán)) ) 若若maxxi,maxxi,minxi,令令min=ximin=xi3
4、. 3. 輸出輸出: :maxmax和和min min 18#include void main() int x10,i,max,min; for(i=0;i10;i+) printf(“ Enter x%d:n“ , i+1);scanf(%d, &xi); max=min=x0; for(i=1;i10;i+) if(maxxi) min=xi; printf(Max is %dn,max); printf(Min is %dn,min);#include #define SIZE 10void main() int xSIZE,i,max,min; for(i=0;iSIZE;i
5、+) printf(“ Enter x%d:n“ , i+1);scanf(%d, &xi); max=min=x0; for(i=1;iSIZE;i+) if(maxxi) min=xi; printf(Max is %dn,max); printf(Min is %dn,min);19)3()2(12) 1(1121nFFFnFnFnnn20)3()2(12) 1(1121nFFFnFnFnnn21方法一:方法一: i i: 0: 04 a4 ai i a9-i a9-i 22方法二:方法二: for(for(i i=0,j=9; =0,j=9; i ija1,則交換;然后比較第二
6、個(gè)數(shù)與第三個(gè)數(shù);依次類推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上(2)對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使前n-1個(gè)數(shù)中最大的數(shù)被安置在 第n-1個(gè)元素位置(3)重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1趟冒泡排序后,排序結(jié)束例5:排序問(wèn)題:冒泡排序(交換排序)、選擇排序24例例38 49 65 76 13 27 30 97 第一趟38 49 65 13 27 30 76 第二趟38 49 13 27 30 65 第三趟38 13 27 30 49 第四趟13 27 30 38 第五趟13 27 30 第六趟49 38 65 97 76 13 27 30
7、初始順序n=8384976971397972730971376762713652765306513134949304927382738303876 13 27 第七趟用冒泡法對(duì)8個(gè)數(shù)排序(圖解)30如果有如果有n n個(gè)個(gè)數(shù),則要數(shù),則要進(jìn)行進(jìn)行n-1n-1趟趟比較。比較。在第在第j j趟比趟比較中要進(jìn)較中要進(jìn)行行n-jn-j次兩次兩兩比較。兩比較。25輸入輸入8個(gè)數(shù)給個(gè)數(shù)給a0 到到 a7for i=1 to 7for j=0 to 7-iajaj+1真真假假ajaj+1輸出輸出a0 到到 a7#include void main() int a8,i,j,t; for(i=0;i8;i+)
8、scanf(%d,&ai); for(i=1;i=7;i+) for (j=0;jaj+1) t=aj; aj=aj+1; aj+1=t; for(i=0;i8;i+)printf(%d ,ai);數(shù)據(jù)定義:數(shù)據(jù)定義:數(shù)組:數(shù)組:a8循環(huán)變量:循環(huán)變量:i,j 外循環(huán):外循環(huán):i=1 to 7 內(nèi)循環(huán):內(nèi)循環(huán):j=0 to 7-i交換:交換: ajaj+1交換中間變量:交換中間變量:t26方法方法2 2:用簡(jiǎn)單用簡(jiǎn)單選擇法選擇法對(duì)對(duì)7 7個(gè)個(gè)數(shù)(數(shù)(少少1-1-畫(huà)圖方便畫(huà)圖方便)排序)排序 選擇排選擇排序序排序過(guò)程排序過(guò)程: : 由小到大排序由小到大排序(1 1)首先)首先從從n n個(gè)
9、數(shù)中找出最小的個(gè)數(shù)中找出最小的(通過(guò)(通過(guò)n-1n-1次比較次比較),),將它將它與第一個(gè)數(shù)交換與第一個(gè)數(shù)交換第一趟選擇排序第一趟選擇排序,結(jié)果,結(jié)果最小最小的數(shù)被安的數(shù)被安置在置在第一個(gè)元素位置第一個(gè)元素位置上上;(2 2)再?gòu)氖S嗟模┰購(gòu)氖S嗟膎-1n-1個(gè)數(shù)中找出個(gè)數(shù)中找出次小次小的的數(shù)(數(shù)(通過(guò)通過(guò)n-2n-2次比較次比較),將它與第二個(gè)數(shù)交換,將它與第二個(gè)數(shù)交換第二趟選擇排序第二趟選擇排序;(3 3)重復(fù)上述過(guò)程,共經(jīng)過(guò))重復(fù)上述過(guò)程,共經(jīng)過(guò)n-1n-1趟趟排序后,排序結(jié)束排序后,排序結(jié)束。27例初始: 49 38 65 97 76 13 27 kji=11349一趟: 13 38
10、65 97 76 49 27 i=22738二趟: 13 27 65 97 76 49 38 三趟: 13 27 38 97 76 49 65 四趟: 13 27 38 49 76 97 65 五趟: 13 27 38 49 65 97 76 六趟: 13 27 38 49 65 76 97 kkkkjjjjjjjjjj例 用簡(jiǎn)單選擇法對(duì)10個(gè)數(shù)排序28#include void main() int a7,i,j,k,t; for(i=0;i7;i+) scanf(%d,&ai); for(i=1;i=6;i+) k=i-1; for(j=i; j=6;j+) if(ajak) k=
11、j; if(k!=i-1) t=ai-1; ai-1=ak; ak=t; for(i=0;i7;i+)printf(%d ,ai);冒泡排序、選擇排序比較次數(shù):冒泡排序、選擇排序比較次數(shù): (n-1)+(n-2)+1=n(n-1)/2輸入輸入7個(gè)數(shù)給個(gè)數(shù)給a0 到到 a6for i=1 to 6for j=i to 6ajak真真假假k=j輸出輸出a0 到到 a7k=i-1k!=i-1真真假假ai ak29 存儲(chǔ)類型數(shù)據(jù)類型數(shù)組名存儲(chǔ)類型數(shù)據(jù)類型數(shù)組名 常量表達(dá)式常量表達(dá)式 常量表達(dá)式常量表達(dá)式 ;例例: : intint a34; a34; float b25; float b25; int
12、int c234; c234; intint a3,4; a3,4; ( ) 行數(shù)行數(shù)列數(shù)列數(shù)元素個(gè)數(shù)元素個(gè)數(shù)= =行數(shù)行數(shù)* *列數(shù)列數(shù)303132下圖表示對(duì)下圖表示對(duì)a34數(shù)組存數(shù)組存放的順序放的順序 int a32a01a10a11a20a21014523a00a00 a01a10 a11a20 a2133int c23401234567.20212223c000c001c002c003c010c011c012c013c020c021c022c023c100c101c102c103c110c111c112c113c120c121c122c12334例 int a34;2016172018
13、1920202120222320089201011201213201415200012002320045200067a00 a01 a02 a03a10 a11 a12 a13a20 a21 a22 a23每個(gè)元素ai由包含4個(gè)元素的一維數(shù)組組成二維數(shù)組a是由3個(gè)元素組成a0a1a2行名014523a01a02a03a10a11a00a13a20a21a22a23a1267101189a0a1a2二維數(shù)組可被看作是一種特殊的一維數(shù)組;二維數(shù)組可被看作是一種特殊的一維數(shù)組;它的元素又是一個(gè)一維數(shù)組。它的元素又是一個(gè)一維數(shù)組。35例如:例如: a23 a23 表示表示a a數(shù)組的第三行四列的元素。
14、數(shù)組的第三行四列的元素。 下標(biāo)可以是整型表達(dá)式,如下標(biāo)可以是整型表達(dá)式,如 a2-12a2-12* *2-12-1 不要寫(xiě)成不要寫(xiě)成 a2,3a2,3,a2-1,2a2-1,2* *2-12-1形式形式 數(shù)組定義數(shù)組定義時(shí)方括號(hào)中給出的是某一維的長(zhǎng)度;只能是時(shí)方括號(hào)中給出的是某一維的長(zhǎng)度;只能是常量常量 數(shù)組元素?cái)?shù)組元素中下標(biāo)是該元素的位置標(biāo)識(shí);常量,中下標(biāo)是該元素的位置標(biāo)識(shí);常量,變量變量或表達(dá)式或表達(dá)式 36數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值數(shù)組元素可以出現(xiàn)在表達(dá)式中,也可以被賦值例如:例如:b12=a23/2b12=a23/2在使用數(shù)組元素時(shí),應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的在
15、使用數(shù)組元素時(shí),應(yīng)該注意下標(biāo)值應(yīng)在已定義的數(shù)組大小的范圍內(nèi)。范圍內(nèi)。intint a34; / a34; /* * 定義定義a a為為3 34 4的數(shù)組的數(shù)組 * */ / a34=3; a34=3; 37383940414243數(shù)組的輸入和輸出只能數(shù)組的輸入和輸出只能逐個(gè)逐個(gè)對(duì)數(shù)組元素進(jìn)行操作對(duì)數(shù)組元素進(jìn)行操作(字符數(shù)組例外)(字符數(shù)組例外)int a23,i,j;輸入第輸入第i行第行第j列元素:列元素:scanf(“%d”,&aij);輸入整個(gè)數(shù)組元素:輸入整個(gè)數(shù)組元素:for (i=0;i2;i+) for(j=0;j3;j+) scanf(“%d”,&aij);輸出第輸
16、出第i行第行第j列列元素:元素:printf(“%d”,aij);輸出整個(gè)數(shù)組元素:輸出整個(gè)數(shù)組元素:for (i=0;i2;i+) for(j=0;j3;j+) printf(“%d”,aij);4445464748495051525354555657哈,找到了!哈,找到了!事先不必排序事先不必排序58哈,找到了!哈,找到了!按升序排序按升序排序59唉,沒(méi)找到!唉,沒(méi)找到!60找到時(shí)返回找到時(shí)返回下標(biāo)位置下標(biāo)位置找不到時(shí)找不到時(shí) 返回返回-1-1若未按學(xué)號(hào)排序,若未按學(xué)號(hào)排序,則如何修改程序?則如何修改程序?61void DataSort(int score, long num, int n
17、) /*選擇法選擇法*/ int i, j, k, temp1; long temp2; for (i=0; in-1; i+) k = i; for (j=i+1; jn; j+) if (numj numk) k = j; /*記錄最大數(shù)下標(biāo)位置記錄最大數(shù)下標(biāo)位置*/ if (k != i) /*若最大數(shù)不在下標(biāo)位置若最大數(shù)不在下標(biāo)位置i*/ temp1 = scorek; scorek = scorei; scorei = temp1; temp2 = numk; numk = numi; numi = temp2; 按學(xué)號(hào)由小按學(xué)號(hào)由小到大排序到大排序62a00a01a02a10a11
18、a12a00a01a02a10a11a12實(shí)際傳送的是數(shù)組第一個(gè)元素的地址實(shí)際傳送的是數(shù)組第一個(gè)元素的地址63a00a01a02a10a11a12a00a01a02a10a11a12實(shí)際傳送的是數(shù)組第一個(gè)元素的地址實(shí)際傳送的是數(shù)組第一個(gè)元素的地址偏移偏移1*3+2646566可省略數(shù)組第一維的長(zhǎng)度可省略數(shù)組第一維的長(zhǎng)度不能省略第二維的長(zhǎng)度不能省略第二維的長(zhǎng)度67686970一串以一串以00結(jié)尾的字符在結(jié)尾的字符在CC語(yǔ)言中被看作字符串語(yǔ)言中被看作字符串用用雙引號(hào)雙引號(hào)括起的一串字符是括起的一串字符是字符串常量字符串常量,CC語(yǔ)言自動(dòng)為語(yǔ)言自動(dòng)為其添加其添加00終結(jié)符終結(jié)符CC語(yǔ)言并語(yǔ)言并沒(méi)有沒(méi)
19、有為字符串提供任何為字符串提供任何專門的表示法專門的表示法,完全使,完全使用字符數(shù)組和字符指針來(lái)處理用字符數(shù)組和字符指針來(lái)處理用來(lái)用來(lái)存放字符數(shù)據(jù)存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組的數(shù)組是字符數(shù)組每個(gè)元素都是字符類型的數(shù)組每個(gè)元素都是字符類型的數(shù)組字符數(shù)組是數(shù)組的一個(gè)字符數(shù)組是數(shù)組的一個(gè)特殊情況特殊情況,定義、引用方法同前,定義、引用方法同前,但也有其,但也有其獨(dú)特獨(dú)特的引用方法。的引用方法。71例例 int c10, ch34;例例 char c10, ch34;72 例例 char ch5=B,o,y;char ch5=B,o,y;ch0ch0B Bo oy y0000逐個(gè)字符賦值逐個(gè)字符賦值c
20、h1ch1 ch2ch2 ch3ch3 ch4ch4 例例 char ch5=H,e,l,l,o;char ch5=H,e,l,l,o;ch0ch0H He el ll lo o逐個(gè)元素賦值逐個(gè)元素賦值ch1ch1 ch2ch2 ch3ch3 ch4ch4如果初值個(gè)數(shù)如果初值個(gè)數(shù)小于小于數(shù)組長(zhǎng)度,則只將這些字符賦給數(shù)組中前面那些元素,數(shù)組長(zhǎng)度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元素自動(dòng)定為其余的元素自動(dòng)定為空字符空字符。 例例 char diamond5=char diamond5=.,., .,.,* *,.,.,* *,.,.,* *, , * *, , ., ., ., .,
21、. , ,* *,.,.,* *, , .,.,* *,., .,., .,* *;二維字符數(shù)組初始化二維字符數(shù)組初始化. . .* *0000. .* *. .* *00* *. . . .* *. .* *. .* *00. . .* *0000diamond0diamond0diamond1diamond1diamond2diamond2diamond3diamond3diamond4diamond473 例例 char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;用字符串常量用字符串常量ch0Helloch1ch2ch3ch40ch57
22、4以字符串方式賦值時(shí),必須保證數(shù)組元素個(gè)數(shù)以字符串方式賦值時(shí),必須保證數(shù)組元素個(gè)數(shù)字符個(gè)數(shù)字符個(gè)數(shù)+1+1。(后面自動(dòng)加一個(gè)(后面自動(dòng)加一個(gè)00) char a char a6 6=“hello”; =“hello”; char fruit7=“Apple”,”O(jiān)range”, ”Grape”,”Pear”,”Peach”;char fruit7=“Apple”,”O(jiān)range”, ”Grape”,”Pear”,”Peach”;二維字符數(shù)組初始化二維字符數(shù)組初始化fruit0fruit0fruit1fruit1fruit2fruit2fruit3fruit3fruit4fruit4A Ap p
23、p pl le e0000OOr ra an ng ge e00GGr ra ap pe e0000P Pe ea ar r000000P Pe ea ac ch h000075例:例: #include void main() char a11= “I am happy”, b10; int i; for (i=0;i10;i+) scanf(“%c”,&bi); for (i=0;i11;i+) printf(“%c”,ai); printf(“n”); for (i=0;i10;i+) printf(“%c”,bi);76例例:用用%c void main() char str5
24、; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”, stri);例例:用用%s void main() char str5; scanf(“%s”, str); printf(“%s”, str);用字符數(shù)組名用字符數(shù)組名,遇遇0結(jié)束結(jié)束例:用例:用putcharfor (i=0; si!=0; i+) putchar(si); putchar(n);77使用使用scanfscanf函數(shù)和格式控制函數(shù)和格式控制%s%s接收字符串給數(shù)組時(shí),接收字符串給數(shù)組時(shí),scanfscanf函數(shù)中的地址表列部
25、分應(yīng)該是函數(shù)中的地址表列部分應(yīng)該是數(shù)組名數(shù)組名。如果地址表列部分寫(xiě)成如果地址表列部分寫(xiě)成某個(gè)數(shù)組元素的地址某個(gè)數(shù)組元素的地址,所接收的,所接收的字符串將從該元素開(kāi)始存入數(shù)組。字符串將從該元素開(kāi)始存入數(shù)組。#includevoid main()char a20=abc;scanf(%s,&a2);printf(%sn,a);scanf(%s, a);等價(jià)于等價(jià)于 :scanf(%s,&a0);輸入:輸入:Hello輸出:輸出:abHello不加不加&78使用使用printfprintf函數(shù)和格式控制函數(shù)和格式控制%s%s輸出字符數(shù)組中的字符串時(shí)輸出字符數(shù)組中的字符串時(shí),p
26、rintfprintf函數(shù)中的輸出表列部分應(yīng)該是函數(shù)中的輸出表列部分應(yīng)該是數(shù)組名數(shù)組名。如果輸出。如果輸出表列部分寫(xiě)成某個(gè)表列部分寫(xiě)成某個(gè)數(shù)組元素的地址數(shù)組元素的地址,輸出將從該元素開(kāi),輸出將從該元素開(kāi)始。始。#includevoid main()char a20=abc;scanf(%s,&a2);printf(%sn,&a2);輸入:輸入:Hello輸出:輸出:Hello79#includevoid main()char a20;scanf(%s,a);printf(%sn,a);輸入:輸入:How are you?輸出:輸出:How使用使用scanfscanf函數(shù)和格式控
27、制函數(shù)和格式控制%s%s接收用戶輸入的字符串時(shí)接收用戶輸入的字符串時(shí),如果字符串中,如果字符串中包含有空格包含有空格,將只接收第一個(gè)空格前面,將只接收第一個(gè)空格前面的字符串部分。的字符串部分。80#includevoid main()char a20=a,b, 0 ,c,d,0,e,f; printf(%sn,a);輸出:輸出:ab#includevoid main() char a20=a,b, 0 ,c,d,0,e,f; int i; for(i=0;i20;i+) printf(%c,ai); printf(n);輸出:輸出:ab cd ef使用使用printfprintf函數(shù)輸出數(shù)組中
28、函數(shù)輸出數(shù)組中的字符串時(shí),遇到字符串結(jié)的字符串時(shí),遇到字符串結(jié)束標(biāo)志束標(biāo)志00時(shí)輸出停止時(shí)輸出停止,不,不輸出輸出00及其以后其它元素及其以后其它元素的值。的值。假如字符數(shù)組中有假如字符數(shù)組中有多個(gè)多個(gè)00,僅輸出第一個(gè)僅輸出第一個(gè)00之前之前各各元素的值。元素的值。81(5 5)使用)使用scanfscanf函數(shù)和格式控制函數(shù)和格式控制%s%s接收字符串給數(shù)組時(shí)接收字符串給數(shù)組時(shí),字符串包含的,字符串包含的字符個(gè)數(shù)數(shù)組長(zhǎng)度減字符個(gè)數(shù)數(shù)組長(zhǎng)度減1 1(6 6)使用)使用scanfscanf函數(shù)和格式控制函數(shù)和格式控制%c%c接收字符串給數(shù)組時(shí)接收字符串給數(shù)組時(shí),可以在字符串末尾,可以在字符串末
29、尾人為添加一個(gè)字符串結(jié)束標(biāo)志人為添加一個(gè)字符串結(jié)束標(biāo)志00 82#include void main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);輸出:輸出:a=How b=are c=you? a=How運(yùn)行情況:運(yùn)行情況:輸入:輸入:How are you?輸入:輸入:How are you?scanf中中%s輸入時(shí)輸入時(shí),遇遇空格或、空格或、tab鍵或回車鍵或回車結(jié)束結(jié)束83使用字符串使用字符串輸入、輸出函數(shù)時(shí),應(yīng)把庫(kù)文件輸入、輸出函數(shù)
30、時(shí),應(yīng)把庫(kù)文件“stdio.h”stdio.h”包含到程序中包含到程序中;使用;使用其它字符串處理函數(shù)時(shí),應(yīng)把庫(kù)文件其它字符串處理函數(shù)時(shí),應(yīng)把庫(kù)文件“string.h”string.h”包含到程序中包含到程序中格式:格式:gets(gets(字符數(shù)組字符數(shù)組) )功能功能:從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中,:從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中, 并自動(dòng)加并自動(dòng)加00說(shuō)明:說(shuō)明:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組長(zhǎng)輸入串長(zhǎng)度應(yīng)小于字符數(shù)組長(zhǎng) (1 1)getsgets函數(shù)執(zhí)行時(shí)僅需要一個(gè)地址,函數(shù)執(zhí)行時(shí)僅需要一個(gè)地址,對(duì)該地址對(duì)該地址是不是數(shù)組首地址并不作要求是不是數(shù)組首地址并不作要
31、求。#include#includevoid main()void main() char s20=abc;char s20=abc; gets(gets(&s2)&s2); ; printf(%sn,s);printf(%sn,s); (2 2)getsgets函數(shù)以函數(shù)以回車回車作為用戶輸入作為用戶輸入字符串字符串結(jié)束的標(biāo)志結(jié)束的標(biāo)志,能夠,能夠接收包含空接收包含空格格的字符串的字符串 (3 3)getsgets函數(shù)一次只能接收一個(gè)字函數(shù)一次只能接收一個(gè)字符串給一個(gè)字符數(shù)組,符串給一個(gè)字符數(shù)組, 84格式:格式:puts(puts(字符數(shù)組字符數(shù)組) )功能:功能:向顯示器
32、輸出字符串(輸出完,換行)向顯示器輸出字符串(輸出完,換行)說(shuō)明:說(shuō)明:字符數(shù)組必須以字符數(shù)組必須以00結(jié)束結(jié)束#include#includevoid main()void main() char a20;char a20;gets(a);gets(a);puts(a);puts(a); (1 1)putsputs函數(shù)的參數(shù)可函數(shù)的參數(shù)可以是字符數(shù)組,也可以以是字符數(shù)組,也可以是字符串常量。是字符串常量。例如:例如:puts(I am a boy);puts(I am a boy);(2 2)putsputs函數(shù)的參數(shù)可函數(shù)的參數(shù)可以是字符數(shù)組中某個(gè)元以是字符數(shù)組中某個(gè)元素的地址,這時(shí)輸出將
33、素的地址,這時(shí)輸出將從該元素開(kāi)始從該元素開(kāi)始3 3)putsputs函數(shù)運(yùn)行時(shí),輸函數(shù)運(yùn)行時(shí),輸出第一個(gè)字符串結(jié)束標(biāo)出第一個(gè)字符串結(jié)束標(biāo)志志00前的所有字符,然前的所有字符,然后將后將00作為回車輸出,作為回車輸出,可以包含轉(zhuǎn)義字符。可以包含轉(zhuǎn)義字符。 #include#includevoid main()void main() char a20=a,b, 0 ,c,d,0,e,f;char a20=a,b, 0 ,c,d,0,e,f;puts(a);puts(a); 輸出:輸出:abab85格式:格式:strcatstrcat( (字符數(shù)組字符數(shù)組1,1,字符數(shù)組字符數(shù)組2)2)功能:功能:
34、把字符數(shù)組把字符數(shù)組2 2連到字符數(shù)組連到字符數(shù)組1 1后面后面返值:返值:返回字符數(shù)組返回字符數(shù)組1 1的首地址的首地址說(shuō)明:說(shuō)明:字符數(shù)組字符數(shù)組1 1必須足夠大必須足夠大 連接前連接前, ,兩串均以兩串均以00結(jié)束結(jié)束; ;連接后連接后, ,串串1 1的的00取消取消, , 新串最后加新串最后加0086char str130=Peoples Republic of ;char str2=China;printf(%s,strcat(str1,str2); 輸出:輸出:Peoples Republic of China 87 一般形式:一般形式:strcpystrcpy( (字符數(shù)組字符數(shù)
35、組1 1,字符串,字符串2) 2) 作用:作用:將字符串將字符串2 2復(fù)制到字符數(shù)組復(fù)制到字符數(shù)組1 1中去。中去。 例如:例如: char str1 char str11010,str2str2=China;=China; strcpystrcpy(str1(str1,str2); str2); 88(1 1)字符數(shù)組字符數(shù)組1 1必須定義得必須定義得足夠大足夠大,以便容納被復(fù)制的字符串。,以便容納被復(fù)制的字符串。字符數(shù)組字符數(shù)組1 1的長(zhǎng)度不應(yīng)小于字符串的長(zhǎng)度不應(yīng)小于字符串2 2的長(zhǎng)度。的長(zhǎng)度。 (2 2)字符數(shù)組字符數(shù)組1 1必須寫(xiě)成數(shù)組名形式必須寫(xiě)成數(shù)組名形式( (如如str1)str
36、1),字符串字符串2 2可以是字可以是字符符數(shù)組名數(shù)組名,也可以是一個(gè),也可以是一個(gè)字符串常量字符串常量。如。如strcpystrcpy(str1(str1,China)China); (3 3)復(fù)制時(shí)連同字符串后面的)復(fù)制時(shí)連同字符串后面的00一起復(fù)制一起復(fù)制到字符數(shù)組到字符數(shù)組1 1中。中。 (4 4)可以用)可以用strcpystrcpy函數(shù)將字符串函數(shù)將字符串2 2中中前面若干個(gè)字符前面若干個(gè)字符復(fù)制到字符數(shù)復(fù)制到字符數(shù)組組1 1中去。中去。例如例如: :strcpystrcpy(str1(str1,str2str2,2 2); );作用是將作用是將str2str2中中前面前面2 2個(gè)
37、個(gè)字符復(fù)制到字符復(fù)制到str1str1中去,然后再加一個(gè)中去,然后再加一個(gè)00。 89(5 5)不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè))不能用賦值語(yǔ)句將一個(gè)字符串常量或字符數(shù)組直接給一個(gè)字符數(shù)組。字符數(shù)組。 如:如: str1=China; str1=China; 不合法不合法 str1=str2; str1=str2; 不合法不合法用用strcpystrcpy函數(shù)只能將一個(gè)字符串復(fù)制到另一個(gè)字符數(shù)組中去。函數(shù)只能將一個(gè)字符串復(fù)制到另一個(gè)字符數(shù)組中去。用賦值語(yǔ)句只能將一個(gè)字符賦給一個(gè)字符型變量或字符數(shù)組元用賦值語(yǔ)句只能將一個(gè)字符賦給一個(gè)字符型變量或字符數(shù)組元素。素。 下面是合法的使
38、用下面是合法的使用: :char a5,c1,c2;c1=A; c2=B;a0=C; a1=h; a2=i; a3=n; a4=a; 90一般形式:一般形式:strcmpstrcmp( (字符串字符串1 1,字符串,字符串2) 2) 作用:作用:比較字符串1和字符串2。 從左到右依次比較對(duì)應(yīng)字符的ASCII,大者認(rèn)為對(duì)應(yīng)串大。(1) 如果字符串1=字符串2,函數(shù)值為0。(2) 如果字符串1字符串2,函數(shù)值為一正整數(shù)(1)。(3) 如果字符串1str2) printf(yes);而只能用:if(strcmp(str1,str2)0) printf(yes);92一般形式:一般形式:strlens
39、trlen ( (字符數(shù)組字符數(shù)組) ) 作用:測(cè)試字符串長(zhǎng)度的函數(shù)函數(shù)的值:字符串中的實(shí)際長(zhǎng)度(不包括0在內(nèi))。例例 對(duì)于以下字符串,對(duì)于以下字符串,strlenstrlen(s)(s)的值為:的值為:(1 1) char char strstr1010=China;=China;(2 2) char s10=A,0,B,C,0,D; char s10=A,0,B,C,0,D;(3 3) char s =“tv0willn”; char s =“tv0willn”;答案:答案:5 5 1 3 1 3 93【例例1 1】輸入一串字符,長(zhǎng)度小于輸入一串字符,長(zhǎng)度小于5050,統(tǒng)計(jì)字符串中相鄰字符
40、對(duì),統(tǒng)計(jì)字符串中相鄰字符對(duì)出現(xiàn)的頻次,然后輸出統(tǒng)計(jì)結(jié)果。比如輸入出現(xiàn)的頻次,然后輸出統(tǒng)計(jì)結(jié)果。比如輸入“abcs123”abcs123”,因?yàn)椋驗(yàn)閍 a與與b b、b b與與c c、1 1與與2 2、2 2與與3 3都是相鄰字符對(duì),所以輸出都是相鄰字符對(duì),所以輸出4 4。#include#include void main()void main() char s50; char s50;intint i,ni,n; ;gets(s);gets(s);i i=0;=0;n=0;n=0;while(si+1!=0)while(si+1!=0) if(sif(si i+1= =si+1)+1= =
41、si+1) n+; n+;i i+;+; printfprintf(%d(%dn,nn,n); ); 分析:分析:n將字符存入數(shù)組;將字符存入數(shù)組;n循環(huán):比較各數(shù)組元素與其相循環(huán):比較各數(shù)組元素與其相鄰數(shù)組元素的關(guān)系,如果滿足條鄰數(shù)組元素的關(guān)系,如果滿足條件(件( if(s if(si i+1= =si+1) +1= =si+1) ),則計(jì)),則計(jì)數(shù)加數(shù)加1 1;n最后輸出統(tǒng)計(jì)結(jié)果。最后輸出統(tǒng)計(jì)結(jié)果。94【例例2 2】輸入一串字符,長(zhǎng)度小于輸入一串字符,長(zhǎng)度小于5050,統(tǒng)計(jì)字符串中包含多少個(gè),統(tǒng)計(jì)字符串中包含多少個(gè)單詞,輸出統(tǒng)計(jì)結(jié)果。比如輸入單詞,輸出統(tǒng)計(jì)結(jié)果。比如輸入“I am a bo
42、y”I am a boy”,輸出,輸出4 4。#include#include#include#includevoid main()void main() char s50;char s50;int i,m,n;int i,m,n;gets(s);gets(s);m=strlen(s);m=strlen(s);n=0;n=0;if(m0)if(m0) for( for(i i=0;i=0;im;im;i+)+) if(sif(si i!= != & si+1= = ) & si+1= = ) n+; n+; n+; n+; printf(%dn,n);printf(%dn,n); 分析:分析:n首先將字符串存入數(shù)組首先將字符串存入數(shù)組;n循環(huán):循環(huán):比較數(shù)組中各元素與其相比較數(shù)組中各元素與其相鄰數(shù)組元素的關(guān)系,如果該數(shù)組鄰數(shù)組元素的關(guān)系,如果該數(shù)組元素為字符,而其相鄰元素為空元素為字符,而其相鄰元素為空格格( s si i!= != & si+1= = & si+1= = ),則認(rèn)為存在一個(gè)單詞,計(jì)數(shù)加則認(rèn)為存在一個(gè)單詞,計(jì)數(shù)加1 1;n最后輸出統(tǒng)計(jì)結(jié)果。最后輸出統(tǒng)計(jì)結(jié)果。加上最后一加上最后一個(gè)單詞個(gè)單詞95【例例3 3】輸入輸入3 3個(gè)字符串,個(gè)字符串,輸
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年餐飲行業(yè)未簽訂勞動(dòng)合同現(xiàn)象普遍
- 2024年包裝材料加工機(jī)械資金籌措計(jì)劃書(shū)代可行性研究報(bào)告
- 茶館服務(wù)流程優(yōu)化考核試卷
- 自動(dòng)化測(cè)試工具使用試題及答案
- 數(shù)字版權(quán)運(yùn)營(yíng)服務(wù)補(bǔ)充協(xié)議
- 珠寶首飾定制設(shè)計(jì)與售后服務(wù)合同
- 影視制作基地電力需求預(yù)測(cè)及備用電源儲(chǔ)備合同
- 股權(quán)質(zhì)押融資業(yè)務(wù)合規(guī)審查合同
- 草原牧場(chǎng)放牧經(jīng)營(yíng)權(quán)流轉(zhuǎn)及生態(tài)補(bǔ)償合同
- 電商企業(yè)客服知識(shí)庫(kù)建設(shè)與智能問(wèn)答系統(tǒng)合同
- 信息安全基礎(chǔ)試題及答案
- 肛瘺護(hù)理查房
- T-PPAC 701-2021 企業(yè)商業(yè)秘密管理規(guī)范
- 經(jīng)絡(luò)腧穴學(xué)試題庫(kù)與參考答案
- 2025年保健按摩師(高級(jí))資格認(rèn)證考試題庫(kù)(附答案)
- 2024-2025人教七上數(shù)學(xué)26第3章代數(shù)式小結(jié)與復(fù)習(xí)【教案】
- 評(píng)估與反饋機(jī)制在教研中的重要性
- 供應(yīng)商廉潔態(tài)發(fā)言材料
- 字節(jié)跳動(dòng)經(jīng)營(yíng)分析報(bào)告
- 微信解除保全申請(qǐng)書(shū)
- 起重機(jī)委托使用協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論