C語言程序設(shè)計教程(第2版)課件第7章_第1頁
C語言程序設(shè)計教程(第2版)課件第7章_第2頁
C語言程序設(shè)計教程(第2版)課件第7章_第3頁
C語言程序設(shè)計教程(第2版)課件第7章_第4頁
C語言程序設(shè)計教程(第2版)課件第7章_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章

數(shù)

本章要點一維數(shù)組二維數(shù)組字符數(shù)組第7章數(shù)組本章要點1先看一個例子:例:給出一個學(xué)生10門功課的成績,要求計算平均成績并打印出低于平均成績的數(shù)值。用變量來解決問題:main(){intw1,w2,w3,w4,w5,w6,w7,w8,w9,w10;intt;scanf("%d%d%d%d%d%d%d%d%d%d",&w1,&w2,&w3,w4,&w5,&w6,&w7,&w8,&w9,&w10);先看一個例子:例:給出一個學(xué)生10門功課的成績,要求計算平均2t=(w1+w2+w3+w4+w5+w6+w7+w8+w9+w10)/10;if(w1<t)printf("%d\n",w1); if(w2<t)printf("%d\n",w2);if(w3<t)printf("%d\n",w3);if(w4<t)printf("%d\n",w4);if(w5<t)printf("%d\n",w5);if(w6<t)printf("%d\n",w6);if(w7<t)printf("%d\n",w7);if(w8<t)printf("%d\n",w8);if(w9<t)printf("%d\n",w9);if(w10<t)printf("%d\n",w10);}t=(w1+w2+w3+w4+w5+w6+w7+w8+w3用數(shù)組來解決問題:main(){intw[10]; /*定義1個整型數(shù)組存放成績*/intt,i;for(i=0;i<10;i++)scanf("%d",&w[i]);for(t=0;i=0;i<10;i++)t=t+w[i];t=t/10;for(i=0;i<10;i++)if(w[i]<t)printf("%d\n",w[i]);}用數(shù)組來解決問題:4數(shù)組及其相關(guān)概念

數(shù)組是一組有序的、類型相同的數(shù)據(jù)的集合,這些數(shù)據(jù)被稱為數(shù)組的元素。數(shù)組下標(biāo)數(shù)組及其相關(guān)概念數(shù)組是一組有序的、類型相同的5

每個數(shù)組都有一個名字,我們稱之為數(shù)組名。

為標(biāo)識數(shù)組中的每個元素,我們需要對它們進行編號,這種編號我們稱之為數(shù)組元素的下標(biāo)。

由于有了下標(biāo),元素在數(shù)組中的位置(或排列順序)就被唯一地確定下來。我們用數(shù)組名加上下標(biāo)就可以準(zhǔn)確地訪問數(shù)組中的某個元素了。如:w[0]代表數(shù)組w中的第一個元素w[9]代表數(shù)組w中的第十個元素注意:C語言規(guī)定下標(biāo)從0開始。說明:數(shù)組名代表數(shù)組的起始地址。數(shù)組元素在內(nèi)存中是連續(xù)存儲的。每個數(shù)組都有一個名字,我們稱之為數(shù)組名。67.1一維數(shù)組7.1.1一維數(shù)組的定義與引用定義一維數(shù)組的一般方式:

類型說明符數(shù)組名[常量表達式];指明數(shù)組元素的數(shù)據(jù)類型指明數(shù)組所含的元素個數(shù)例如:inta[10];/*定義的整型數(shù)組a含10個元素*/floatb[20];/*定義的實型數(shù)組b含20個元素*/7.1一維數(shù)組7.1.1一維數(shù)組的定義與引用定義一維7說明:⑴數(shù)組名的命名規(guī)則同變量名的命名規(guī)則一樣;⑵數(shù)組名后用方括號[],不能用()⑶常量表達式必須是大于0的整型常量表達式,不

能包含變量。即C語言不允許對數(shù)組的大小作動態(tài)定義,即定義數(shù)組時,數(shù)組的長度必須是確定的,其大小不依賴程序運行過程中變量的值。inta(10);

例如:intn;inta[n]charname[0];floatweight[10.3];floatarray[-100];說明:⑴數(shù)組名的命名規(guī)則同變量名的命名規(guī)則一樣;⑵數(shù)組名后8一維數(shù)組引用的一般方式:

數(shù)組名[下標(biāo)];例數(shù)組元素的引用。main(){ inta[9]; for(i=0;i<9;i++) a[i]=i;/*對數(shù)組元素賦值*/ for(i=8;i>=0;i--) printf(“%d”,a[i]);/*按下標(biāo)的格式對數(shù)組元素引用*/}運行結(jié)果:876543210

一維數(shù)組引用的一般方式:數(shù)組名[下97.1.2一維數(shù)組的初始化與引用1.定義時初始化在定義時賦予初值

如:inta[5]={2,4,6,8,10};存儲形式:存儲單元可知初始化的一般形式為:類型說明符數(shù)組名[常量表達式]={值,值,………值};7.1.2一維數(shù)組的初始化與引用1.定義時初始化在定義時10可以只給部分元素賦值

例如:inta[10]={0,1,2,3,4};

這表示只給前5個元素賦值,后5個元素值全為0。如果想給一個數(shù)組中全部元素值為0,可以寫成inta[10]={0,0,0,0,0,0,0,0,0,0};或inta[10]={0};在對全部數(shù)組元素賦初值時,可以不指定數(shù)組長度。例如:inta[5]={1,2,3,4,5};也可以寫成inta[]={1,2,3,4,5};可以只給部分元素賦值

例如:11說明:⑴如果在定義一維數(shù)組時給出了全部元素的初值,則數(shù)組的下標(biāo)允許省略。此時編譯系統(tǒng)將自動根據(jù)初始化數(shù)據(jù)的個數(shù)來確定數(shù)組的長度。如:inta[]={2,4,6,8,10};inta[];╳⑵初始化的數(shù)據(jù)個數(shù)允許少于數(shù)組的長度,但不

能多于數(shù)組的長度。當(dāng)初始化的數(shù)據(jù)個數(shù)(至少要有一個)少于數(shù)組的長度時,未初始化部分將被編譯系統(tǒng)自動用0賦值。如:inta[5]={2,4};

相當(dāng)于:a[0]=2,a[1]=4,a[2]=0,a[3]=0,a[4]=0inta[5]={1,2,3,4,5,6,7,8};╳說明:⑴如果在定義一維數(shù)組時給出了全部元素的初值,如:in122.使用其它方法初始化⑵利用輸入語句初始化main(){charas[26];inti;for(i=0;i<26;i++)scanf("%c",&as[i]);…...}⑴利用賦值語句初始化main(){charas[26],ch;for(ch='A';ch<='Z';ch++)as[ch-'A']=ch;…...}2.使用其它方法初始化⑵利用輸入語句初始化⑴利用賦值語句初133.一維數(shù)組的引用

數(shù)組元素類似于單個變量,可以自由地存取。但是,它與一般變量相比,有以下特殊之處:⑴數(shù)組元素是通過數(shù)組名加上該元素在數(shù)組中的位置(即數(shù)組元素的下標(biāo))來訪問的。

表示形式:

數(shù)組名[下標(biāo)]

如:a[3]

其中,下標(biāo)可以是整型常量、整型變量或整型表達式。如:inta[10];floati=3;a[i]=10;3.一維數(shù)組的引用數(shù)組元素類似于單個變量,14⑵

數(shù)組元素的下標(biāo)是從0開始的。如:inta[2];scanf(“%d,%d”,&a[1],&a[2]);⑵數(shù)組元素的下標(biāo)是從0開始的。如:inta[2];15⑶

數(shù)組元素的賦值是逐個元素進行的,不允許把一個數(shù)組作為一個整體賦給另一個數(shù)組。除了數(shù)組初始化外,也不允許用在花括號中列表的方式對數(shù)組整體賦值。例1:inta[5]={2,4,6,8,10},b[5];b[5]=a[5];例2:inta[5];a[5]={2,4,6,8,10};⑷

數(shù)組名a代表的是數(shù)組a在內(nèi)存中的首地址,因此,可以用數(shù)組名a來代表數(shù)組元素a[0]的地址。

等價于scanf(“%d”,&a[0]);scanf(“%d”,a);⑶數(shù)組元素的賦值是逐個元素進行的,不允許把一個數(shù)組作為一個16一維數(shù)組應(yīng)用舉例例1:從鍵盤上輸入10個實型數(shù)存入數(shù)組,然后按輸入順序的逆序輸出這10個數(shù)。main(){floata[10];inti;for(i=0;i<10;i++)scanf(“%f”,&a[i]);for(i=9;i>=0;i--)printf(“%10.2f”,a[i]);}一維數(shù)組應(yīng)用舉例例1:從鍵盤上輸入10個實型數(shù)存入數(shù)組,然m17例:用數(shù)組來處理求斐波納契數(shù)列:1,1,2,3,5,8…的前20個數(shù)。main(){intf[20]={1,1};for(i=2;i<20;i++)/*f[2]是數(shù)組第3個元素*/f[i]=f[i-2]+f[i-1];for(i=0;i<20;i++){printf(“%10d”,f[i]);if(i%2==0)printf(“\n”);/*每行打印2個數(shù)*/}}數(shù)學(xué)表示:f(0)=f(1)=1,f(n)=f(n-2)+f(n-1)例:用數(shù)組來處理求斐波納契數(shù)列:main()數(shù)學(xué)表示:f(018例:用冒泡法對10個數(shù)排序(由小到大)。冒泡法的思路是:將相鄰兩個數(shù)比較,將小的調(diào)到前頭。

988888895555559444444922222290000009第一輪排序,比較了5次,獲得第一次結(jié)果。剩數(shù)輪數(shù)5142332415例:用冒泡法對10個數(shù)排序(由小到大)。冒泡法的思路是:將相19main(){inta[11],i,j,t;printf(“Input10numbers:\n”);for(i=1;i<11;i++)scanf(“%d”,&a[i]);printf(“\n”);

for(j=1;j<=9;j++)/*控制9輪排序*/for(i=1;i<=10-j;i++)/*每輪排序比較次數(shù)*/if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;}for(i=1;i<=10;i++)printf("%d",a[i]);}main()207.2二維數(shù)組先看一個例子:某校近三年招收各專業(yè)畢業(yè)生情況如下:

計算機電子管理數(shù)學(xué)19999040803020001005090402001954510050要把這些數(shù)據(jù)組織起來,可以有兩種選擇:

⑴按從左到右從上到下的順序存入一個一維數(shù)組中。(查詢困難)

⑵每年用一個一維數(shù)組,把這些數(shù)據(jù)分別存入三個數(shù)組中。(增加一年數(shù)據(jù)困難)7.2二維數(shù)組先看一個例子:217.2.1二維數(shù)組的定義與引用定義二維數(shù)組的一般方式:類型說明符數(shù)組名[常量表達式1][常量表達式2];

如:inta[3][4];存儲形式:

二維數(shù)組在內(nèi)存中是按行的順序存放的,即先存放第一行的元素,再存放第二行的元素。

7.2.1二維數(shù)組的定義與引用定義二維數(shù)組的一般方式:類22說明:二維數(shù)組除了維數(shù)比一維數(shù)組多一維外,其它性質(zhì)與一維數(shù)組是全部類似的??纯聪旅鎸懛ㄊ欠裾_?

①inta[0][3];

用于定義數(shù)組長度的常量表達式的值必須是大于0的正整數(shù)。

②inti=3,j=4;

inta[i][j];

定義數(shù)組元素的個數(shù)必須使用常量表達式,而不能使用變量。說明:二維數(shù)組除了維數(shù)比一維數(shù)組多一維外,其它性質(zhì)與一維數(shù)23二維數(shù)組的引用

與引用一維數(shù)組元素一樣,是用下標(biāo)法引用二維數(shù)組元素的。表示形式:數(shù)組名[行下標(biāo)][列下標(biāo)]其中,行下標(biāo)和列下標(biāo)是整型常量、整型變量或整型表達式。其編號是從0開始的。例如:若有inta[2*5][3*4],i=15;

則使用a[3*3][0],a[1][i-5]都是合法的。說明:數(shù)組名a代表的是數(shù)組a在內(nèi)存中的首地址,因此,可以用數(shù)組名a來代表數(shù)組元素a[0][0]的地址。二維數(shù)組的引用與引用一維數(shù)組元素一樣,是用下247.2.2二維數(shù)組的初始化

這里主要介紹定義時初始化,其它方法初始化和一維數(shù)組類似。定義時初始化有兩種方法:⑴分行初始化

例如:inta[2][3]={{1,2,3},{4,5,6}};⑵線性初始化

即按數(shù)組元素在內(nèi)存中排列的順序賦初值。

例如:inta[2][3]={1,2,3,4,5,6};7.2.2二維數(shù)組的初始化這里主要介紹定義時初始化25(3)只對部分賦值inta[3][4]={{1},{4,3},{1,2}};這種賦值方法相當(dāng)于:inta[3][4]={{1,0,0,0},{4,3,0,0},{1,2,0,0}};系統(tǒng)自動將沒有賦值的元素賦值成0。inta[3][4]={{1},{4}};相當(dāng)于inta[3][4]={{1,0,0,0},{4,0,0,0},{0,0,0,0}};對于沒有大括號的,系統(tǒng)自動將此行元素賦值為0。(4)如果將數(shù)組的所有元素全部賦值的話,可以省掉第一維的長度。例如:inta[][4]={1,2,3,4,5,6,7,8,9,10,11,12};(3)只對部分賦值26說明:⑴在對二維數(shù)組初始化時,也可以只對部分數(shù)組元素初始化,未被初始化的數(shù)組元素將自動賦0。inta[2][3]={{5,6},{7,8}};inta[2][3]={5,6,7,8};如:得到的數(shù)組為:560780得到的數(shù)組為:567800⑵在對二維數(shù)組初始化時,如果對全部元素都賦初值,或分行賦初值(每行至少一個數(shù)據(jù)),則可以省略第一維數(shù)組長度。但是,第二維數(shù)組長度不允許省略。如:inta[][3]={1,2,3,4,5,6,7,8,9};inta[][4]={{1,2},{3,4,5,6},{7}};系統(tǒng)按3行處理inta[][10]={1,0};floatf[2][]={1.1,2.2};說明:⑴在對二維數(shù)組初始化時,也可以只對部分數(shù)組元素初始化277.2.3二維數(shù)組應(yīng)用舉例例1:使用數(shù)組保存“九九表”,然后輸出。main(){inta99[10][10],i,j;for(i=1;i<10;i++)for(j=1;j<=i;j++)a99[i][j]=i*j;for(i=1;i<10;i++){for(j=1;j<=i;j++)printf(“%6d",a99[i][j]);printf(“\n”);}}7.2.3二維數(shù)組應(yīng)用舉例例1:使用數(shù)組保存“九九表”,然28例:矩陣的轉(zhuǎn)置。(書中例7.4)a=123456b=142536轉(zhuǎn)換成main(){inta[2][3]={{1,2,3},{4,5,6}};intb[3][2],i,j;printf("arraya:\n");for(i=0;i<=1;i++){for(j=0;j<=2;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf("\n");}printf("\narrayb:\n");for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%6d",b[i][j]);printf("\n");}}例:矩陣的轉(zhuǎn)置。(書中例7.4)a=123b=129例:求3*4數(shù)組中的最大值及其下標(biāo)。main(){intmax,row,colum,i,j;inta[][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};max=a[0][0];for(i=0;i<3;i++)for(j=0;j<4;j++)if(a[i][j]>max){max=a[i][j];row=i;colum=j;}printf("max=%d,row=%d,colum=%d",max,row,colum);}例:求3*4數(shù)組中的最大值及其下標(biāo)。main()307.3多維數(shù)組介紹例如:我們定義一個三維數(shù)組:intm[2][3][4];其中常量表達式由原來的兩個變?yōu)槿齻€,把這個三維數(shù)組按順序進行展開如下:

m[0][0][0],m[0][0][1],m[0][0][2],m[0][0][3]m[0][1][0],m[0][1][1],m[0][1][2],m[0][1][3]m[0][2][0],m[0][2][1],m[0][2][2],m[0][2][3]m[1][0][0],m[1][0][1],m[1][0][2],m[1][0][3]m[1][1][0],m[1][1][1],m[1][1][2],m[1][1][3]m[1][2][0],m[1][2][1],m[1][2][2],m[1][2][3]定義多維數(shù)組的一般方式:類型說明符數(shù)組名[表達式1][表達式2]…[表達式n];7.3多維數(shù)組介紹例如:我們定義一個三維數(shù)組:317.4字符數(shù)組和字符串7.4.1字符數(shù)組的定義與初始化當(dāng)數(shù)組的元素類型為字符型時,被稱為字符數(shù)組。如:charc[10];則c為字符數(shù)組。

字符數(shù)組的定義、初始化和元素的引用與一般的數(shù)組相同。如:main(){charch[5]={‘c’,‘h’,‘i’,‘n’,‘a(chǎn)’};for(i=0;i<5;i++)printf(“%c”,ch[i]);}7.4字符數(shù)組和字符串7.4.1字符數(shù)組的定義與初始化32說明:⑴定義字符數(shù)組的類型說明符一般為char,如:charc[10];由于字符型與整型的互相通用性,因此,上面定義也可改為:intc[10];⑵初始化的字符個數(shù)允許少于字符數(shù)組的長度,但不能多于字符數(shù)組的長度。當(dāng)初始化的字符(至少要有一個)少于字符數(shù)組的長度時,未初始化部分將被編譯系統(tǒng)自動用空字符‘\0’

賦值。如:intc[8]={‘H’,‘e’,‘l’,‘l’,‘o’};則:c[0]=‘H’,c[1]=‘e’,c[2]=‘l’,c[3]=‘l’,c[4]=,‘o’c[5]=‘\0’,c[6]=‘\0’,c[7]=‘\0’說明:⑴定義字符數(shù)組的類型說明符一般為char,如:⑵初始337.3.3字符串與字符數(shù)組

字符串常量是用雙引號括起來的一串字符,由系統(tǒng)自動加上一個字符串結(jié)束標(biāo)志‘\0’。它占內(nèi)存,但不記入字符串長度。如:“china”占內(nèi)存6個字節(jié),但字符串長度是5在C語言中用字符數(shù)組來處理字符串,每個元素存放一個字符型數(shù)據(jù)。

字符型數(shù)組可用一般數(shù)組的初始化方式初始化外,還可以使用字符串常量初始化:如:charmessage[]={“Hello”};√或charmessage[]=“Hello”;√(這時,字符數(shù)組長度是6,字符串長度是5。)7.3.3字符串與字符數(shù)組字符串常量是用雙引號括34注意:它與一般初始化方式:charmessage[]={‘H’,‘e’,‘l’,‘l’,‘o’};初始化的結(jié)果是不同的。

用一般初始化方式結(jié)果:

‘H’‘e’‘l’‘l’‘o’用字符串常量初始化:

‘H’‘e’‘l’‘l’‘o’‘\0’說明:字符數(shù)組本身并不要求它的最后一個元素一定是‘\0’,例如:charch[2]={‘A’,‘B’};是合法的。當(dāng)定義字符數(shù)組用字符串常量賦初值時,最后有一個元素其值為‘\0’。為了使處理方法一致,在字符數(shù)組中也常常人為地加上一個值為‘\0’的元素。如:charmessage[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘\0’};注意:它與一般初始化方式:用一般初始化方式結(jié)果:‘H’35例輸出一個鉆石圖形main(){chardiamond[][5]={{‘’,’’,’*’},{‘’,’*’,’’,’*’},{‘*’,’’,’’,’’,”*’},{‘’,’*’,’’,’*’},{‘’,’’,’*’}};inti,j;for(i=0;i<5;i++){for(j=0;j<5;j++)printf(“%c”,diamond[i][j]);printf(“\n”);}}

********例輸出一個鉆石圖形*36main(){chara[5];inti=0;while(i<=4){scanf(“%c”,&a[i]);i++;}}}輸入數(shù)據(jù):abccdgmain(){chara[5];inti=0scanf(“%s”,a);printf(“%s”,a);}a[0]a[1]a[2]a[3]a[4]abc\0\0a[1]a[2]a[3]a[4]abccmain()輸入數(shù)據(jù):a[0]a[1]a[2]a[3]a[4377.3.4字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出可以有以下兩種方法:⑴逐個字符輸入輸出用格式符“%c”輸入或輸出一個字符。⑵將整個字符串一次輸入或輸出。

用格式符“%s”輸入輸出字符串。例如:charc[]=“Hello”;printf(“%s”,c);注意:⑴輸出字符不包括結(jié)束符‘\0’。⑵用“%s”格式符輸出字符串時,printf函數(shù)的輸出項是字符數(shù)組名,而不是數(shù)組元素名。7.3.4字符數(shù)組的輸入輸出字符數(shù)組的輸入輸出可以有以下兩38⑶輸出字符數(shù)組時,遇到第一個‘\0’,輸出就結(jié)束。⑷用“%s”格式符輸入字符串時,scanf函數(shù)的輸出項

是字符數(shù)組名時,不要再加地址符&,因為C語言中數(shù)組名代表該數(shù)組的起始地址。如:charstr[10];scanf(“%s”,&str);⑸用“%s”格式符輸入字符串時,scanf函數(shù)的輸出項是

字符數(shù)組名時,從鍵盤輸入的字符串應(yīng)短于已定義

的字符數(shù)組的長度。系統(tǒng)自動在后面加個‘\0’結(jié)束符。⑹利用scanf函數(shù)輸入多個字符串時,是以空格、回車、跳格分隔。因此不要試圖利用scanf函數(shù)從鍵盤輸入Howareyou?賦給一個字符串。⑶輸出字符數(shù)組時,遇到第一個‘\0’,輸出就結(jié)束。⑷用“%397.3.5字符數(shù)組處理函數(shù)1.字符串輸入gets()函數(shù)使用形式:

gets(字符數(shù)組)功能:從終端輸入一個字符串(直到回車鍵)到字符數(shù)組中。例如:charstr[20];gets(str);若從鍵盤輸入:HelloWorld!則將字符串“HelloWorld!”送到字符數(shù)組str中。7.3.5字符數(shù)組處理函數(shù)1.字符串輸入gets()函數(shù)使402.字符串輸出puts()函數(shù)使用形式:

puts(字符數(shù)組)功能:將一個字符串輸出到終端。在輸出時,將字符串結(jié)束標(biāo)志轉(zhuǎn)換成‘\n’,即輸出完字符串后換行。例如:charstr[]={“China\nBeijing”};puts(str);輸出:ChinaBeijing注意:使用puts和gets函數(shù)前,要用預(yù)編譯命令:#include“stdio.h”。2.字符串輸出puts()函數(shù)使用形式:puts(字符413.求字符串長度strlen()函數(shù)使用形式:

strlen(字符數(shù)組)功能:計算字符串長度,函數(shù)值是字符串中‘\0’之前的字符個數(shù)(不包括‘\0’字符)。例如:charstr[80]={“ab\n\\012/\\\””};printf(“%d”,strlen(str));輸出:10

charstr[80]={“ab\n\0y\012/\\\””};printf(“%d”,strlen(str));輸出:3注意:使用這些函數(shù)前,要用#include“string.h”3.求字符串長度strlen()函數(shù)使用形式:str424.字符串連接strcat()函數(shù)使用形式:

strcat(字符數(shù)組1,字符串2)功能:連接兩個字符串,把字符串2連接到字符串1的后面,連接后的字符串放在字符數(shù)組1中。說明:⑴字符數(shù)組1必須足夠大以便能夠容納字符串2。

⑵連接時只在新串最后保留一個‘\0’。

4.字符串連接strcat()函數(shù)使用形式:strc435.字符串比較strcmp()函數(shù)使用形式:

strcmp(字符串1,字符串2)其中,字符串可以是字符串常量或字符數(shù)組。功能:比較兩個字符串。比較的原則:兩個字符串從左至右逐個對應(yīng)字符按其ASCII碼值大小相比較,直到出現(xiàn)不同的字符或遇到‘\0’為止。若設(shè)n=strcmp(字符串1,字符串2);n>0;串1>串2則:n=n=0;串1=串2n<0;串1<串25.字符串比較strcmp()函數(shù)使用形式:strc44例如:charstr1[20],str2[10];

(將str1[20]和str2[10]賦初值)

if(strcmp(str1,str2)>0)puts(str1);注意:不能寫成if(str1>str2)strcmp(“China”,”Korea”);例如:charstr1[20],str2[10];注意456.字符串復(fù)制strcpy()函數(shù)使用形式:

strcpy(字符數(shù)組1,字符串2)功能:將字符串2復(fù)制到字符數(shù)組1中(其后自動加一個‘\0’)。例如:charstr1[20],str2[10];

strcpy(str1,“helloworld”);strcpy(str2,str1);其中,字符串2可以是字符串常量或字符數(shù)組。6.字符串復(fù)制strcpy()函數(shù)使用形式:st46說明:⑴字符數(shù)組1必須足夠大以便能夠容納被復(fù)制的字符串。⑵不能用賦值語句將一個字符串常量或字符數(shù)組直接賦值給一個字符數(shù)組。例如:charstr1[20],str2[20];str1={“hello”};str2=str1;7.將字符串中大寫字母換成小寫字母strlwr()函數(shù)使用形式:

strlwr(字符串)8.將字符串中小寫字母換成大寫字母strupr函數(shù)使用形式:

strupr(字符串)說明:⑴字符數(shù)組1必須足夠大以便能夠容納被⑵不能用賦值語句將47例1:統(tǒng)計字符串中的單詞數(shù)。#include<stdio.h>main(){charstring[81],c;inti,num=0,word=0;gets(string);for(i=0;string[i]!='\0';i++)if(string[i]=='')word=0;elseif(word==0){word=1;num++;}printf(“\nThereare%dwords.”,num);}Iamaboy7.4數(shù)組綜合實例

例1:統(tǒng)計字符串中的單詞數(shù)。#include<stdio48例2:3個字符串求最大的字符串

。#include<stdio.h>#include<string.h>main(){chars[3][20],s1[20];inti,j;for(i=0;i<3;i++)gets(s[i]);if(strcmp(s[0],s[1])>0)strcpy(s1,s[0]);elsestrcpy(s1,s[1])if(strcmp(s[2],s1)>0)strcpy(s1,s[2]);puts(s1);}CHINAHOLLANDAMERICA例2:3個字符串求最大

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論