版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
君誓產(chǎn)第7章教組
I0?前面各章所使用的數(shù)據(jù)都屬于基本數(shù)據(jù)類型
(整型、實(shí)型、字符型),c語言除了提供基
本數(shù)據(jù)類型外,還提供了構(gòu)造類型的數(shù)據(jù),它
們是數(shù)組類型、結(jié)構(gòu)體類型、共同體類型等。
構(gòu)造數(shù)據(jù)類型是由基本數(shù)據(jù)類型的數(shù)據(jù)按照一
定的規(guī)則組成,所以也稱為“導(dǎo)出類型”。
?下面簡單介紹一下數(shù)組概念:
?1、數(shù)組:一組具有相同數(shù)據(jù)類型的數(shù)據(jù)的有
序的集合。
?2、數(shù)組元素:數(shù)組中的元素。數(shù)組中的每一
個(gè)數(shù)組元素具有相同的名稱,不同的下標(biāo),可
以作為單個(gè)變量使用,所以也稱為下標(biāo)變量。
在定義一個(gè)數(shù)組后,在內(nèi)存中使用一片連續(xù)的
空間依次存放數(shù)組的各個(gè)元素。
*第7章教組
-3、數(shù)組的下標(biāo):是數(shù)組元素的位置的一個(gè)索
引或指示。
?4、數(shù)組的維數(shù):數(shù)組元素下標(biāo)的個(gè)數(shù)。根據(jù)
數(shù)組的維數(shù)可以將數(shù)組分為一維、二維、三維、
多維數(shù)組。
?7>1一i維數(shù)組
-數(shù)組(上面提到):數(shù)組是一組有序數(shù)據(jù)的集
合,數(shù)組中每一個(gè)元素的類型相同。用數(shù)組名
和下標(biāo)來唯一確定數(shù)組中的元素。
?一維數(shù)組中的各個(gè)數(shù)組元素是排成一行的一組
下標(biāo)變量,用一個(gè)統(tǒng)一的數(shù)組名來標(biāo)識,用一
個(gè)下標(biāo)來指示其在數(shù)組中的位置。下標(biāo)從0開
始。一維數(shù)組通常和一重循環(huán)相配合,對數(shù)組
元素進(jìn)行處理。
為7章教組
?7、1、1一維數(shù)組的定義(先定義后使用)
?定義方式:|
-類型說明符數(shù)組名[整型常量表達(dá)式][
I?例、inta[10]I
?定義一個(gè)數(shù)組,數(shù)組名a,有10個(gè)元素,
每個(gè)元素的類型均為int。
I?這10個(gè)元素分別是:a[0]>a[l]>a[2]>I
a[3]、a[4]、.??.、a[8]、a[9]I
.注意:Io
?(1)C語言中,數(shù)組下標(biāo)從0開始.|
?(2)C語言不允許對數(shù)組的大小做動態(tài)
[卷7定義,如:
第7章教組
?intn;I
?scanf(n%df\&n);I
?inta[n];I
?因?yàn)樵诰帞撸珻編譯器根據(jù)已知數(shù)組大小分配
內(nèi)存。I
?說明:I
?(1)數(shù)組名:按標(biāo)識符規(guī)則。本例a就是數(shù)組
名。I
?(2)整型常量表達(dá)式:表示數(shù)組元素個(gè)數(shù)(數(shù)
組的長度)??梢允钦统A炕蚍柍A?,不
允許用變量。
?整型常量表達(dá)式在說明數(shù)組元素個(gè)數(shù)的同時(shí)也
確定了數(shù)組元素下標(biāo)的范圍,下標(biāo)從0開始?整
型常量表達(dá)式(注意不是1?整型常量表達(dá)
陋41
[518^sr?
'p-c語言不檢查數(shù)組下標(biāo)越界,但是使用時(shí),一[
般不能越界使用,否則結(jié)果難以預(yù)料(覆蓋程
序區(qū)-程序飛出,覆蓋數(shù)據(jù)區(qū)■數(shù)據(jù)覆蓋破壞,
操作系統(tǒng)被破壞,系統(tǒng)崩潰)。
?本例數(shù)組元素個(gè)數(shù)是10個(gè),下標(biāo)從0-9。
?(3)類型說明:指的是數(shù)據(jù)元素的類型,可
以是基本數(shù)據(jù)類型,也可以是構(gòu)造數(shù)據(jù)類型。
類型說明確定了每個(gè)數(shù)據(jù)占用的內(nèi)存字節(jié)數(shù)。
比如整型2字節(jié),實(shí)型4字節(jié),雙精度8字節(jié),
字符1字節(jié)。
?本例數(shù)組元素是整型,每個(gè)元素占2個(gè)字節(jié),
因?yàn)橛?0個(gè)數(shù)組元素,所以占用20字節(jié)。
?(4)C編譯程序?yàn)閿?shù)組分配了一片連續(xù)的空間。
?(5)C語言還規(guī)定,數(shù)組名是數(shù)組的首地址。
[建"即2=&打[0]
■
H?7、1、2一維藪組的初始化
?初始化格式:
I?數(shù)據(jù)類型數(shù)組名[常量表達(dá)式]={初值表}
?初始化:在定義時(shí)指定初始值,編譯器把初值
賦給數(shù)組變量。賦值:使用賦值語句,在程序
運(yùn)行時(shí)把值賦給數(shù)組變量,如a[0]=2
I?1、一般初始化,例、O
?staticinta[10]={0,1,2,3,4,5,6,7,8,9)
?intarray[10]={1,2,3,4,5,6,7,8,9,10};
I?2、部分元素初始化,其余元素均為零。
?例、staticinta[10]={0,1,2,3,4);
I?僅前5個(gè)元素賦初值,后5個(gè)元素未指頂初值。
?3、全部元素均初始化為3不允許簡寫。
rA^l..-staticinta[10]={0,0,0,0,0,0,0,0,0,0};
晶短卡弟7章教組
?不能簡寫為:
?staticinta[10]={0*10};
?注意:當(dāng)程序不給數(shù)組指定初女氽時(shí),編譯器
作如下處理:
?(1)編譯器自動把靜態(tài)數(shù)組的各元素初始化
為0。
I?(2)編譯器不為動態(tài)數(shù)組自動指定初始值。|
?4、如果全部元素均指定初值,定義中可以省
I略元素的個(gè)數(shù),例、
?staticinta[5]={1,2,3,4,5);
I?可以寫為:I
?staticinta[]={1,2,3,4,5);
I?7、1、3數(shù)組元素的引用
常堂熱展壽第7章蒙客
「0-c語言規(guī)定,不能引用整個(gè)數(shù)組,只能逐個(gè)引
用元素,元素引用方式:
-數(shù)組名[下標(biāo)表達(dá)式]
I?例、a[0]=a[5]+a[7]-a[2*3]I
?“下標(biāo)表達(dá)式”可以是任何非負(fù)整型數(shù)據(jù),取
值范圍是0?(元素個(gè)數(shù)T)。
?特別強(qiáng)調(diào)?.在運(yùn)行C語言程序過程中,系統(tǒng)并
不自動檢驗(yàn)數(shù)組元素的下標(biāo)是否越界。因此在
編寫程序時(shí),保證數(shù)組下標(biāo)不越界是十分重要
的。
?1個(gè)數(shù)組元素,實(shí)質(zhì)上就是1個(gè)變量,它具有和
相同類型單個(gè)變量一樣的屬性,可以對它進(jìn)行
賦值和參與各種運(yùn)算。
?在C語言中,數(shù)組作為1個(gè)整體,不能參加數(shù)據(jù)
運(yùn)算,只能對單個(gè)的元素進(jìn)行處理。
第7章數(shù)組
?7、1、4一維數(shù)組的應(yīng)用
■[例7—3]輸入10個(gè)數(shù),用“冒泡法”對10個(gè)數(shù)排序(由
小到大)。]
?冒泡法的基本思想:通過相鄰兩個(gè)數(shù)之間的比較和交換
使排序碼(數(shù)值)較小的數(shù)逐漸從底部移向頂部,排序
碼較大的數(shù)逐漸從頂部移向底部。就像水底的氣泡一樣
逐漸向上冒,故而得名。I
?“冒泡法”算法:以六個(gè)數(shù)9、8、5、4、2、0為例。
?第1趟比較(下圖1)第2趟比較(下圖2)
r-----r—一
:988888:85555
;895555;_58444
55944444822
444922
22280
222290
0000
0000叵
I第1次第2次第3次第4次結(jié)果
1第1次第2次第3次第4次第5次結(jié)果
,轉(zhuǎn)宿熱展即第7章教組
?第1趟比較后,乘U5個(gè)數(shù)未排好序;兩兩比較5次
?第2趟比較后,乘U4個(gè)數(shù)未排好序;兩兩比較4次
?第3趟比較后,乘U3個(gè)數(shù)未排好序;兩兩比較3次
?第4趟比較后,乘吃個(gè)數(shù)未排好序;兩兩比較2次
?第5趟比較后,全部排好序;兩兩比較1次]
■算法結(jié)論:對于n個(gè)數(shù)的排序,需進(jìn)行nT趟比
較,第j趟比較需進(jìn)行n-j次兩兩比較。]
?程序流程圖:(用兩層嵌套循環(huán)實(shí)現(xiàn))I
forton-1
fori=lton-j
畛4鈿由—過10:1
董端戲展即
程序:設(shè)需排序的數(shù)有io個(gè),定義數(shù)組大小為
1L使用a[l]?a[10]存放10個(gè)數(shù),a[0]不用。
main()
(
inta[ll];/*用a[l]?a[10],a[0]不用*/
inti,j,t;/*i,j作循環(huán)變量,t作臨變*/
printf("input10numbers:\nz/);
for(i=l;i<ll;i++)
scanf(〃%d〃,&a[i]);/*輸入10個(gè)整數(shù)*/I
printf(〃\n〃);
for(j=l;j<=9;j++)/*第j趟比較*/
for(i=l;i<=10-j;i++)/*第j趟中兩兩比|
畛4
第7章教組
I=?if(a[i]>a[i+l])/*交換大小*/
B>{t=a[i];I
■?a[i]=a[i+l];I
I?a[i+l]=t;
].}I
I?printf(/?thesortednumbers:\nz/);
I?for(i=l;i<ll;i++)
I?printf(〃%d〃,a[i]);
?1
?自己下去認(rèn)真看書上(p87-89)例題大家一定
要看懂,上機(jī)練。
I?7、2二維數(shù)組
?二維數(shù)組:數(shù)組元素是雙下標(biāo)變量的數(shù)組。
一I
出短濯產(chǎn)弟7章教組
口?二維數(shù)組的數(shù)組元素可以看作是排列為行列的
形式(矩陣)。二維數(shù)組也用統(tǒng)一的數(shù)組名來
標(biāo)識,第一個(gè)下標(biāo)表示行,第二個(gè)下標(biāo)表示列.
下標(biāo)從o開始。]
?7、2、1二維數(shù)組的定義[
?類型說明符數(shù)組名1[行常量表達(dá)式1][列常量表達(dá)式1],數(shù)組名
2[行常量表達(dá)式2][列常量表達(dá)式2]……;■
I?例、floata[3][4];a為3X4(3行4歹U)的數(shù)組]
?floatb[5][10];b為5X10(5行10歹U)的數(shù)組|
I.二維數(shù)組的理解:I
I?二維數(shù)組a[3][4]理解為:I
?有三個(gè)元素a[0]、a[l]、a[2],每一個(gè)元素是[
一個(gè)包含4個(gè)元素的數(shù)組。[
?型-xl______________________________________________
,轉(zhuǎn)宿熱展即第7章教組
aaaa03
-a[Q]oo0102
aa[l]a10a11a12a13
?二維數(shù)組的元素在內(nèi)存中的存放順序:
?按行存放,即:先順序存放第一行的元素,再
存放第二行的元素。(最右邊的下標(biāo)變化最快,
第一維的下標(biāo)變化最慢)。
「不石…布尸a::■-二a?
__—一——02■—03
一—一—一一一一————―
a10aitr具―--
—--——j
-—口--^^^^^一口——"VI—
。20^21。2223
~教組
0?再一次說明:I
?(1)二維數(shù)組中的每個(gè)數(shù)組元素都有兩個(gè)下標(biāo)
且必須分別放在單獨(dú)的“[]”內(nèi)。如:a[3,4<
?(2)二維數(shù)組定義中的第1個(gè)下標(biāo)表示該數(shù)組
具有的行數(shù),第2個(gè)下標(biāo)表示該數(shù)組具有的列數(shù)
兩個(gè)下標(biāo)之積是該數(shù)組具有的數(shù)組元素的個(gè)數(shù)
I?(3)二維數(shù)組中的每個(gè)數(shù)組元素的數(shù)據(jù)類型均
I相同。二維數(shù)組的存放規(guī)律是“按行排列”。I
?(4)二維數(shù)組可以看作是數(shù)組元素為一維數(shù)組
的數(shù)組。|
I?7、2、2二維數(shù)組的初始化I
?1、分行賦值,
第7章教組
I一?如、
I?staticinta[3][4=
I{{1,2,3,4},{5,6,7,8},{9,10,11,12}};
?2、全部數(shù)據(jù)寫在一個(gè)大括號內(nèi),如、
I?staticinta[3][4=
I{1,2,3,4,5,6,7,8,9,10,11,12);
I?3、部分元素賦值,如、
I?staticinta[3][4]={{1},{5},{9});
?僅對a[0][0]、a[l][0],a[2][0]賦值,其余
元素未賦值(對于靜態(tài)數(shù)組,編譯器自動為未
賦值元素指定初值0。
I?教材P90還列舉了一些部分元素賦初值的例
I子,請自行閱讀。
-I.________________________________________________________________________________________________________
第7章數(shù)組
-r-4、如果對全部元素賦初值,則第一維的長度
I可以不指定,但必須指定第二維的長度。例、
staticint
a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12);
與下面定義等價(jià):
staticint
a:][4]={1,2,3,4,5,6,7,8,9,10,11,12);
7、2、2二維數(shù)組元素的引用
用數(shù)組名和下標(biāo)引用元素。例、
floata[2][3];有6個(gè)元素,按如下方式引用
各元素:
a[0][0]>a[0][l]>a[0][2],a[l][0]>
②(下標(biāo)從0始)
在意:數(shù)組floata[2][3]中無元素a[2][3]。
-
I0?看書上例題(p91自學(xué))
I-7、2、3二維數(shù)組應(yīng)用舉例
I?二維數(shù)組的遍歷訪問(掃描),一般都
I采用雙重循環(huán)處理(行循環(huán),列循環(huán))。
I?[例6.4]將一個(gè)二維數(shù)組行和列交換,
存到另一個(gè)二維數(shù)組中。例如、
14
123
25
W56
36
第7章數(shù)名
I?算法:b[j][i]=a[i][j]
I?程序:
I?main()
I-{
I?staticinta[2][3]={{1,2,3},{4,5,6));
I?staticintb[3][2],i,j;
I?printf(/zarraya:\n〃);
I?for(i=0;i<=l;i++)/*0?1行*/
for(j=0;j<=2;j++)/*0?2列*/
{
printf(〃%5d〃,a[i][j]);
Ib[j][i]=aEiLTj];/*行、列交換*/
第7章教組
I?printf(〃\n〃);/*輸出一行后換行*/I
I.}
I?printf(/?arrayb:\n〃);
I?for(i=0;i<=2;i++)
?{
I?for(j=0;j<=l;j++)
I?printf(〃%5d〃,b[i][j]);
I?printf(〃\n〃);/*輸出一行后換行*/I
I-)
■}
?[例6.5]有一個(gè)3X4的矩陣,要求編程序以求
出其中值最大的那個(gè)元素的值及其所在的行號
f?算法:首先把第一個(gè)元素a[0][0]作為臨
I時(shí)最大值max,然后把臨時(shí)最大值max與
每一個(gè)元素進(jìn)行比較,若
Ia[i][j]>max,把a(bǔ)[i][j]作為新的臨時(shí)
最大值,并記錄下其下標(biāo)i和j。當(dāng)全部
元素比較完后,max是整個(gè)矩陣全部元素
I的最大值。I
max=a[0][0]
?流程:fori=0to2
forj=0to3
max=a[i]Lj]
row=i
colum=j
畛4輸L±J:max和row、coluni
第7章天甌
I?程序:
I?main()
I?{
I?inti,j,row=0,colum=0,max;
I?staticint
[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-
I5,2}};
I?max=a[0][0];
I?for(i=0;i<=2;i++)/*用兩重循環(huán)遍歷全
I部元素*/
I?for(j=0;j<=3;j++)
I?if(a[i][j]>max)
I?{max=a[i][j];
—畛pl-?row=_i;______________________________
董端戲展即第7章教組
colum=j;I
I
printf(〃max=%d,row=%d,I
colum=%d\nz/,max,row,colum);I
I
注意:本例中得到的行列值從0始。
書上例題7—6(p91自己看)
7.2.5多維數(shù)組I
當(dāng)數(shù)組元素的下標(biāo)在2個(gè)或2個(gè)以上時(shí),該數(shù)組
稱為多維數(shù)組。其中以2維數(shù)組最常用。]
定義多維數(shù)組:類型說明數(shù)組名[整型常數(shù)1]
[整型常數(shù)2]…[整型常數(shù)k];I
例如:inta[2][3][3];
定義了一個(gè)三維數(shù)組a,其中每個(gè)數(shù)組元素為
第7章教組
=?整型??偣灿?x3x3=18個(gè)元素。|
?說明:[
?(1)對于三維數(shù)組,整型常數(shù)1,整型常數(shù)2,
整型常數(shù)3可以分別看作“深”維(或:“頁”
維)、“行”維、“列”維??梢詫⑷S數(shù)組
看作一個(gè)元素為二維數(shù)組的一維數(shù)組。三維數(shù)
組在內(nèi)存中先按頁、再按行、最后按列存放。
?(2)多維數(shù)組在三維空間中不能用形象的圖
形表示。多維數(shù)組在內(nèi)存中排列順序的規(guī)律是:
第一維的下標(biāo)變化最慢,最右邊的下標(biāo)變化最
快0I
?(3)多維數(shù)組的數(shù)組元素的引用:數(shù)組名[下
標(biāo)1][下標(biāo)2]…[下標(biāo)k]。多維數(shù)組的數(shù)組元
素可以在任何相同類型變量可以使用的位置引
粵用。只是同樣要注意不要越界。
第7章教組
?7、3字符數(shù)組
-字符數(shù)組:存放字符數(shù)據(jù)的數(shù)組,每一
個(gè)元素存放一個(gè)字符。
?一、程序中定義字符數(shù)組
?例、charc[10];/*定義c為字符數(shù)組,
包含10個(gè)元素*/
?c[o]=,rc[l]=?c[2]=,a';
c[3]=,mc[4]=>
?c[5]=,h'c[6]=?a5c[7]=,p';
c[8]=,p'c[9]=?y'
c[0]c[l]c[2]c[3]c[4]c[5]c[6]必g[g]c[9]
i□a□haPPy
第7章教組
.?注意:
?字符型與整型可以通用,但有區(qū)別:
I?charc[10];/*在內(nèi)存中占10字節(jié)*/
I?intc[10];/*在內(nèi)存中占20字節(jié)*/
?二、字符數(shù)組的初始化
I?1、逐個(gè)元素初始化
I?staticcharc[10]=「I'」',,a;ni\,
I,h,a,p,p,y);
I?2、初始化數(shù)據(jù)少于數(shù)組長度,多余元素自動為
I“空"('\0',二進(jìn)制0)。
?staticcharc[10]=
I「,,,,,,,,,,,,,,,,,,]/,
I1C,,p,r,o,g,r,a,m);/*
I9*/
-I._______________________________________________________________________________________________________
第7章教組
I比0]c[2]c[3]c[4]c[5]c[6]c[7]c[8]c[9]
c□pr°gramV
?3、指定初值時(shí),若未指定數(shù)組長度,則長度
I等于初值個(gè)數(shù)。
I?staticcharc[]={'I','',,a/,,m;
I,h,a,p,p,y);
I?三、字符數(shù)組的引用
I-引用一個(gè)元素,得到一個(gè)字符。
I?[例7.2.1]輸出一個(gè)字符串。
I?main()
I?{staticcharc[10]={JT,?'Ja/,,m;
,,,,,,1,,,,,]
I,a,,b,o,y);
I?inti;
¥—1?fori++)
第7章教組
I-四、字符串|
I?字符串例子:〃Iamaboy〃
?1、C語言中,字符串作為字符數(shù)組處理。字符
I數(shù)組可以用字符串來初始化,例、
I?staticcharc口={〃Iamhappy"};
I?也可以這樣初始化:(不要大括號)I
I?staticcharc[]=〃Iamhappy”;
?2、字符串在存儲時(shí),系統(tǒng)自動在其后加上結(jié)
束標(biāo)志'\0'(占一字節(jié),其值為二進(jìn)制0)。
但字符數(shù)組并不要求其最后一個(gè)元素是'\0',
I例、staticcharc[]={"China"};
l,IUIhI,InIaI5
產(chǎn)瞿萌第7章教組
I?staticcharc[5]={"China"};
I[匚,[b[.[h1a]
I?staticcharc[10]={"China"};
IChina\0\0\0\0\p
I?五、字符數(shù)組的輸入輸出
I?兩種方法:
I?1、用“%C”格式符逐個(gè)輸入輸出。
I?2、用“%s”格式符按字符串輸入輸出。
I?例、staticcharc[6];
I?scanf(〃%s〃,c);
[強(qiáng)」?printf(〃%s〃,c);
堂短展祥第7章教組
?注意:
(1)輸出時(shí),遇'\o'結(jié)束,且輸出字符中不
包含'\0'。
(2)"%s”格式輸出字符串時(shí),printfO函數(shù)
的輸出項(xiàng)是字符數(shù)組名,而不是元素名。
staticcharc[6]="China”;
printf(〃%s〃,c);printf(〃%c〃,c[0]);
printf(〃%s〃,c[0]);
(3),,%s”格式輸出時(shí),即使數(shù)組長度大于字
符串長度,遇'\0'也結(jié)束。例、
staticcharc[10]={"China"};
printf(“%s”,c);/*只輸出5個(gè)字符*/
(4)格式輸出時(shí),若數(shù)組中包含一個(gè)
7以上[\0’,遇第二個(gè)'\0'時(shí)結(jié)束。
第7章教組
一?(5)輸入時(shí),遇回車鍵結(jié)束,但獲得的
字符中不包含回車鍵本身,而是在字符
串末尾添‘\0’。因此,定義的字符數(shù)
組必須有足夠的長度,以容納所輸入的
字符。(如,輸入5個(gè)字符,定義的字符
數(shù)組至少應(yīng)有6個(gè)元素)。
?(6)一個(gè)scanf函數(shù)輸入多個(gè)字符串,
蒯入時(shí)以“空格”鍵作為字符串間的分
隔。例、
?staticcharstrl[5],str2[5],str3[5];
I?scanf(〃%s%s%s〃,strl,str2,str3);I
?輸入數(shù)據(jù):Howareyou?I
第7章教組
owP口
aX-e\oo
youp
?例、staticcharstr[13];
?scanf(〃%s〃,str);
?輸入:Howareyou?
?結(jié)果:僅“How”被輸入數(shù)組str
?如要想str獲得全部輸入(包含空格及其以后
的字符),程序應(yīng)設(shè)計(jì)為:
?staticcharc[13];
?inti;
?for(i=0;i<13;i++)c[i]=getchar();
骸i磷通第7章教組
?(7)C語言中,數(shù)組名代表該數(shù)組的起始地
址,因此,scanf()函數(shù)中不需要地址運(yùn)算符&。
(在TurboC中,加上&運(yùn)算符也可以)。例、
?staticcharstr[13];
?scanf(〃%s〃,str);
?scanf(〃%s〃,&str);
?(8)不能采用賦值語句將一個(gè)字符串直接賦
給一個(gè)數(shù)組。例:charc[10];c□=“good”;
?但是可以初始化:如:charc[]="good”;
?在TurboC中,加上&運(yùn)算符也可以
?書上例題自己下去一定要看懂。(上機(jī)練習(xí))
?六、字符串處理函數(shù)
?在C的函數(shù)庫中,提供了一些字符串處理函數(shù)。
「吃公1
第7章教組
-F?字符串輸入、輸出函數(shù):[
?在調(diào)用字符串輸入、輸出函數(shù)時(shí),在程序前面
通常應(yīng)設(shè)置一個(gè)相關(guān)的文件包含預(yù)處理命令
(有關(guān)預(yù)處理命令將在第9章介紹),即
?#include<stdio.h>
?1、puts。函數(shù):輸出字符串(以‘\0’結(jié)I
尾)。
?例、staticcharc[6]="China”;printf>I
puts均以'\0’結(jié)尾.I
?printf(/z%s\n/z,c);I
I?printf需要格式控制符%$I
?puts(c);看書上例題(p96)I
?puts不需要格式控制符,且自動換行
嗖MM0函婺"入字符串到數(shù)組。例、—I
第7章天甌
?staticcharstr[12];
?gets(str);
?注意:gets()>puts()一次只能輸入輸
出一個(gè)字符串。而scanf()、printfO可
以輸入輸出幾個(gè)字符串。
?3、strcat():連接字符串。
?strcat(字符串1,字符串2);
?功能:把“字符串2”連接到“字符串1”
的后面。從strl原來的‘\0'(字符串結(jié)
束標(biāo)志)處開始連接。
■
第7章教組
?注意:■
?字符串1一般為字符數(shù)組,要有足夠的空
間,以確保連接字符串后不越界;]
?字符串2可以是字符數(shù)組名,字符串常量
或指向字符串的字符指針(地址)。1
?(p97)例題I
,4、strcpy():字符串拷貝。]
?strcpy(字符串1,字符串2);I
?功能:將“字符串2”為首地址的字符串
復(fù)制到“字符串為首地址的字符數(shù)組
中。即把“字符串2”的值拷貝到“字符
第7章數(shù)組
|,?例如:
I?staticcharstrl[10],str2[]={66china99};
I?strcpy(strl,str2);
I?執(zhí)行后strl的狀態(tài)為:
C|h|i|na\O|\O|\O|\OkQ
?注意:
?strl■一般為字符數(shù)組,要有足夠的空間,以確保
復(fù)制字符串后示越界;]
?str2.可以是字符數(shù)組名,字符串常量或指向字符
串的字符指針(地址)。|
?字符串(字符數(shù)組)之間不能賦值,但是通過此
一函數(shù),可以間接達(dá)到賦值的效果。
第7章教組
I?例題書上(p98)
?5、strcmp():字符串比較。|
?intstrcmp(字符串1,字符串2);I
I?比較"字符串1"、"字符串2”,例、I
?strcmp(strl,str2);I
?strcmp(〃China〃,“Korea");I
?strcmp(strl,〃Beijing〃);I
?比較規(guī)則:逐個(gè)字符比較ASCH碼,直到遇到
不同字符或'\0’,比較結(jié)果是該函數(shù)的返回
值。I
?字符串1〈字符串2,strcmp()返回值〈0
?字符串1==字符串2,strcmp()返回值=0
?字符串2>字符串2,strcmp()返回值〉0
金4?長度不同的也可以進(jìn)皿較.比較結(jié)果]
第7章教組
H?長度不同的字符串也可以進(jìn)行比較,比較結(jié)果
當(dāng)然是“不同”。
?注意、字符串只能用strcmp函數(shù)比較,不能用
關(guān)系運(yùn)算符“二二”比較。例、
?if(strcmp(strl,str2)==0)
printf(〃yes〃);
?if(!strcmp(str1,str2))printf(〃equal〃);
?if(strl==str2)printf(〃yes〃);
?例題書上p99.
?6、求字符串的長度函數(shù)strlen(str)
?功能:統(tǒng)計(jì)str為起始地址的字符串的長度
(不包括"字符串結(jié)束標(biāo)志”),并將其作為
卜、函數(shù)值返回。
第7章毀組
1?注意:在調(diào)用字符串處理函數(shù)時(shí),在程序前面
I應(yīng)設(shè)置一個(gè)相關(guān)的文件包含預(yù)處理命令,即
Iftinclude<string.h>
I?例題書上p97.
I?7.3.4字符數(shù)組應(yīng)用舉例
第7L教組
,未出現(xiàn)新單詞,使word=0,num不累加
前言符為空格(word=0)浙單詞出現(xiàn),
加
num1,word=lD
前一字符為非空格(word=l),未出現(xiàn)
新單詞,num不加口
輸T入---個(gè)等1宿7串給與tring
i=O
當(dāng)((c=strin名口])K
------S~~
word-O
word=1
num=num-4-1
i=i-+-1
tH:num
第7章教組
?程序:I
ftinclude"stdio.h〃/*gets()函數(shù)在該頭文1
注義*
main()
charstring[81];
inti,num=0,word=0;
charc;
gets(string);
for(i=0;(c=string"])!='\0';i++)
if(c二二’’)word=0;
elseif(word==0)
我4
第7章教組
?[例7.17]輸入三個(gè)字符串,并找出其中最大
者。
?分析:用strcmpO函數(shù)比較字符串的大小。首
先比較前兩個(gè),把較大者拷貝給字符數(shù)組變量
string(用strcpyO函數(shù)拷貝),再比較
string和第三個(gè)字符串。
?程序:設(shè)字符串最長為19個(gè)字符。
?ttinclude"string.h〃/*strcmp>strcpy函
第7章教組
I?main()
I?{charstring[20];/*存最大字符串*/
I?charstr[3][20];/*三個(gè)字符串*/
I?inti;
I?for(i=0;i<3;i++)
I?gets(str[i]);輸入三個(gè)字符串*/
I?if(strcmp(str[0],str[l])>0)
Istrcpy(string,str[0]);
I?else
I?strcpy(string,str[l]);
I?if(strcmp(str[2],string)>0)
Istrcpy(string,str[2]);
I?printf(/z\nthelargeststringis:
【匿2“.\n%s\n/z,string);
-
—-T-生7Let
斷堂公那赍弟/早教組
J=.小結(jié):
-數(shù)組是程序設(shè)計(jì)的常用數(shù)據(jù)結(jié)構(gòu),字符串(字
符數(shù)組)在現(xiàn)代程序中也用得相當(dāng)普遍,應(yīng)掌
握它們的意義和用法。
?1、數(shù)組(一維和二維,多維)名、數(shù)組元素
的概念。一維數(shù)組常與一重循環(huán)配合、二維數(shù)
組常與二重循環(huán)配合,對數(shù)組元素依次進(jìn)行處
理。
?2、數(shù)組必須先定義后使用,數(shù)組的初始化方
I法。
?3、數(shù)組元素在內(nèi)存中的存儲順序。
I?4、數(shù)據(jù)排序算法。(冒泡排序法)
?5、字符串的特點(diǎn)(作為字符數(shù)組處理、最后
■_一字節(jié)加'\0')o
理函數(shù)的應(yīng)用
SuccesswithMoneyandJoy
附落人生心語
?成功是一種觀念
?致富是一種義務(wù)
?快樂是一種權(quán)利
?每個(gè)人都有能力、有義
務(wù)、有權(quán)利辦到成功
致富快樂
附贈人生心語
成成功不是打敗別人
功成功不是超越別人
成功不是名、利、權(quán)的獲得
致?lián)碛薪】档纳眢w
豐足的物質(zhì)生活
富平衡的心理狀態(tài)
又才能擁有成功
快SuccesswithMoneyandJoy
戰(zhàn)勝自己
樂貢獻(xiàn)自己
扮演好自己的歷史角色
才能超越自己
融入成功里
附贈人生心語
知人者智,自知者明,勝人者力,自
勝者強(qiáng)。
——老子
附贈人生心語
?成功必須靠百分之九十八的辛勤血
汗,加上百分之二的天才靈感。
?世界上注定只有百分之二十的人會成
功。
附贈人生心語
成猶太諺語中有一句名言,
功會傷人的東西有三個(gè):苦惱、爭吵、空的錢包。
其中最傷人的是——空的錢包。
致金錢本身并沒有善惡,
但沒有錢,
富卻的確是一件不幸的事情。
又所以,我們必須學(xué)習(xí)
快SuccesswithMon
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 策略深度研究:當(dāng)前還有哪些高股息值得關(guān)注
- 全程編制棉絲絨項(xiàng)目可行性研究報(bào)告方案可用于立項(xiàng)及銀行貸款+201
- 2024-2026年中國微信公眾號市場調(diào)查研究及行業(yè)投資潛力預(yù)測報(bào)告
- 可行性項(xiàng)目研究報(bào)告電子類
- 2024河南金屬及金屬礦批發(fā)市場前景及投資研究報(bào)告
- 2025年鹽酸酯項(xiàng)目可行性研究報(bào)告
- 2025年中國大宗農(nóng)產(chǎn)品玉米市場供需格局及未來發(fā)展趨勢報(bào)告
- 2025年鋼具家私項(xiàng)目可行性研究報(bào)告-20250102-030841
- 2025正規(guī)的民間個(gè)人借款合同范本
- 同軸衰減器項(xiàng)目可行性研究報(bào)告
- 2025北京朝陽初二(上)期末數(shù)學(xué)真題試卷(含答案解析)
- 做賬實(shí)操-科學(xué)研究和技術(shù)服務(wù)業(yè)的賬務(wù)處理示例
- 2025年人教版歷史八上期末復(fù)習(xí)-全冊重難點(diǎn)知識
- 2024年國家安全員資格考試題庫及解析答案
- 山東省濱州市2023-2024學(xué)年高一上學(xué)期1月期末考試 政治 含答案
- 儀控技術(shù)手冊-自控專業(yè)工程設(shè)計(jì)用典型條件表
- 法務(wù)崗位招聘筆試題及解答(某大型國企)2025年
- 《慶澳門回歸盼祖國統(tǒng)一》主題班會教案
- 洗衣房工作人員崗位職責(zé)培訓(xùn)
- 廣東省深圳市光明區(qū)2022-2023學(xué)年五年級上學(xué)期數(shù)學(xué)期末試卷(含答案)
- XX小區(qū)春節(jié)燈光布置方案
評論
0/150
提交評論