第06章數(shù)組_第1頁
第06章數(shù)組_第2頁
第06章數(shù)組_第3頁
第06章數(shù)組_第4頁
第06章數(shù)組_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、信息工程學(xué)院為了解決比較復(fù)雜的問題,本章介紹C語言提供的一種最簡(jiǎn)單的構(gòu)造類型數(shù)組。6.1 1維數(shù)組的定義和引用維數(shù)組的定義和引用6.2 2維數(shù)組的定義和引用維數(shù)組的定義和引用6.3 字符數(shù)組與字符串字符數(shù)組與字符串Return第第6章章 數(shù)數(shù) 組組信息工程學(xué)院6.1 1維數(shù)組的定義和引用維數(shù)組的定義和引用6.1.1 1維數(shù)組的定義維數(shù)組的定義6.1.2 1維數(shù)組元素的引用維數(shù)組元素的引用6.1.3 1維數(shù)組元素的初始化維數(shù)組元素的初始化6.1.4 1 1維數(shù)組應(yīng)用舉例維數(shù)組應(yīng)用舉例 Return信息工程學(xué)院6.1.1 1維數(shù)組的定義維數(shù)組的定義案例案例6.1 從鍵盤上任意輸入10個(gè)整數(shù),要求按

2、從小到大的順序在屏幕上顯示出來。 排序的方法有很多,本題采用冒泡法。冒泡法的基本思想冒泡法的基本思想:通過相鄰兩個(gè)數(shù)之間的比較和交換,使排序碼(數(shù)值)較小的數(shù)逐漸從底部移向頂部,排序碼較大的數(shù)逐漸從頂部移向底部。就像水底的氣泡一樣逐漸向上冒,故而得名。由AnA1組成的n個(gè)數(shù)據(jù),進(jìn)行冒泡排序的過程可以描述為:(1)首先將相鄰的An與An-1進(jìn)行比較,如果An的值小于An-1的值,則交換兩者的位置,使較小的上浮,較大的下沉;接著比較An-1與An-2,同樣使小的上浮,大的下沉。依此類推,直到比較完A2和A1后,A1為具有最小排序碼(數(shù)值)的元素,稱第一趟排序結(jié)束。(2)然后在AnA2區(qū)間內(nèi),進(jìn)行第

3、二趟排序,使剩余元素中排序碼最小的元素上浮到A2;重復(fù)進(jìn)行n-1趟后,整個(gè)排序過程結(jié)束。信息工程學(xué)院/*案例代碼文件名:AL6_1.C*/*功能:從鍵盤上任意輸入n個(gè)整數(shù),用冒泡法按從小到大地排序,并在屏幕上顯示出來。*/#include stdio.h#define NUM 10/*定義符號(hào)常量(數(shù)據(jù)個(gè)數(shù)N)*/main() int dataNUM;/*定義1個(gè)1維整型數(shù)組data*/ int i,j,temp;/*定義循環(huán)變量和臨時(shí)變量*/ clrscr();/*庫函數(shù)clrscr():清屏*/ printf(Please input 10 numbers:n); for(i=0; iNU

4、M; i+) scanf(%d, &datai); 信息工程學(xué)院 /*冒泡法排序*/ for(i=0; ii; j-) /*內(nèi)循環(huán):進(jìn)行每趟比較*/ if(datajdataj-1) /*如果dataj大于dataj-1,交換兩者的位置*/ temp=dataj; dataj=dataj-1; dataj-1=temp; ; /*輸出排序后的數(shù)據(jù)*/ printf(nthe result of sort:n); for(i=0; iNUM; i+) printf(%d ,datai); getch();/*等待鍵盤輸入任一字符,目的使程序暫停*/程序演示程序演示信息工程學(xué)院數(shù)組同變量一

5、樣,也必須先定義、后使用。1維數(shù)組是只有1個(gè)下標(biāo)的數(shù)組,定義形式如下:數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式, 數(shù)組名數(shù)組名2常量表達(dá)式常量表達(dá)式2;(1)“數(shù)據(jù)類型”是指數(shù)組元素的數(shù)據(jù)類型。(2)數(shù)組名,與變量名一樣,必須遵循標(biāo)識(shí)符命名規(guī)則。(3)“常量表達(dá)式”必須用方括號(hào)括起來,指的是數(shù)組的元素個(gè)數(shù)(又稱數(shù)組長度),它是一個(gè)整型值,其中可以包含常數(shù)和符號(hào)常量,但不能包含變量。注意注意:C語言中不允許動(dòng)態(tài)定義數(shù)組語言中不允許動(dòng)態(tài)定義數(shù)組。 信息工程學(xué)院特別說明特別說明:在數(shù)組定義時(shí),“常量表達(dá)式”外的方括號(hào);以及元素引用時(shí),“下標(biāo)表達(dá)式”外的方括號(hào),都是C語言語法規(guī)則所要求的,不

6、是本書所約定的可選項(xiàng)的描述符號(hào)?。?)數(shù)組元素的下標(biāo),是元素相對(duì)于數(shù)組起始地址的偏移量,所以從0開始順序編號(hào)。(5)數(shù)組名中存放的是一個(gè)地址常量,它代表整個(gè)數(shù)組的首地址。同一數(shù)組中的所有元素,按其下標(biāo)的順序占用一段連續(xù)的存儲(chǔ)單元。Return信息工程學(xué)院 6.1.2 數(shù)組元素的引用數(shù)組元素的引用 引用數(shù)組中的任意一個(gè)元素的形式: 數(shù)組名數(shù)組名下標(biāo)表達(dá)式下標(biāo)表達(dá)式 1“下標(biāo)表達(dá)式”可以是任何非負(fù)整型數(shù)據(jù),取值范圍是0(元素個(gè)數(shù)-1)。 特別強(qiáng)調(diào)特別強(qiáng)調(diào):在運(yùn)行C語言程序過程中,系統(tǒng)并不自動(dòng)檢驗(yàn)數(shù)組元素的下標(biāo)是否越界。因此在編寫程序時(shí),保證數(shù)組下標(biāo)不越界是十分重要的。 21個(gè)數(shù)組元素,實(shí)質(zhì)上就是1

7、個(gè)變量,它具有和相同類型單個(gè)變量一樣的屬性,可以對(duì)它進(jìn)行賦值和參與各種運(yùn)算。 3在C語言中,數(shù)組作為1個(gè)整體,不能參加數(shù)據(jù)運(yùn)算,只能對(duì)單個(gè)的元素進(jìn)行處理。Return信息工程學(xué)院 6.1.3 1維數(shù)組元素的初始化維數(shù)組元素的初始化 初始化格式:數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名常量表達(dá)式常量表達(dá)式初值初值表表(1)如果對(duì)數(shù)組的全部元素賦以初值,定義時(shí)可以不指定數(shù)組長度(系統(tǒng)根據(jù)初值個(gè)數(shù)自動(dòng)確定)。如果被定義數(shù)組的長度,與初值個(gè)數(shù)不同,則數(shù)組長度不能省略。(2)“初值表”中的初值個(gè)數(shù),可以少于元素個(gè)數(shù),即允許只給部分元素賦初值。(3)根據(jù)存儲(chǔ)類型的不同,數(shù)組有靜態(tài)數(shù)組(static)和動(dòng)態(tài)數(shù)組(au

8、to)之分;根據(jù)定義的位置不同,數(shù)組有內(nèi)部數(shù)組(在函數(shù)內(nèi)部定義的數(shù)組)和外部數(shù)組(在函數(shù)外部定義的數(shù)組)之分。Return信息工程學(xué)院6.1.4 1維數(shù)組應(yīng)用舉例維數(shù)組應(yīng)用舉例 案例案例6.2 已知某課程的平時(shí)、實(shí)習(xí)、測(cè)驗(yàn)和期末成績,求該課程的總評(píng)成績。其中平時(shí)、實(shí)習(xí)、測(cè)驗(yàn)和期末分別占10、20、20、50。/*案例代碼文件名:AL6_2.C*/*功能:從鍵盤上循環(huán)輸入某課程的平時(shí)、實(shí)習(xí)、測(cè)驗(yàn)和期末成績,按10,20,20,50的比例計(jì)算總評(píng)成績,并在屏幕上顯示出來。按空格鍵繼續(xù)循環(huán),其他鍵終止循環(huán)。*/#include “stdio.h”main() int i=1,j; char con_

9、key=x20; /* x20 空格鍵的ASCII碼*/ float score5,ratio4=0.1,0.2,0.2,0.5; /*定義成績、比例系數(shù)數(shù)組*/ while(con_key=x20)信息工程學(xué)院 while(con_key=x20) clrscr(); printf(輸入第%2d個(gè)學(xué)生的成績n, i+); printf(平時(shí) 實(shí)習(xí) 測(cè)驗(yàn) 期末成績n); score4=0;/* score4:存儲(chǔ)總評(píng)成績*/ for(j=0; j4; j+) scanf(%f,&scorej); score4 += scorej * ratioj; printf(總評(píng)成績?yōu)?%6.1f

10、n, score4); printf(n按空格鍵繼續(xù),其它鍵退出); con_key=getch(); /*getch()函數(shù)等待從鍵盤上輸入一個(gè)字符*/ 程序演示程序演示Return信息工程學(xué)院6.2 2維數(shù)組的定義和引用維數(shù)組的定義和引用6.2.1 2維數(shù)組的定義維數(shù)組的定義6.2.2 2維數(shù)組元素的引用維數(shù)組元素的引用6.2.3 2維數(shù)組元素的初始化維數(shù)組元素的初始化6.2.4 2維數(shù)組應(yīng)用舉例維數(shù)組應(yīng)用舉例 Return信息工程學(xué)院案例案例6.3 給一個(gè)23的2維數(shù)組各元素賦值,并輸出全部元素的值。 /*案例代碼文件名:AL6_3.C*/*功能:從鍵盤上給23數(shù)組賦值,并在屏幕上顯示出

11、來。*/#define Row 2#define Col 3#include stdio.hmain() int i, j, arrayRowCol;/*定義1個(gè)2行3列的2維數(shù)組array*/ for(i=0; iRow; i+)/*外循環(huán):控制2維數(shù)組的行*/ for(j=0; jCol; j+)/*內(nèi)循環(huán):控制2維數(shù)組的列*/ printf(please input array%2d%2d:,i,j); scanf(%d,&arrayij); /*從鍵盤輸入aij的值*/ printf(n); /*輸出2維數(shù)組array*/ for(i=0;iRow;i+)6.2.1 2維數(shù)組的

12、定義維數(shù)組的定義信息工程學(xué)院 for(j=0;jCol;j+) printf(%dt,arrayij); /*將aij的值顯示在屏幕上*/ printf(n); getch(); 程序演示程序演示2維數(shù)組的定義方式如下: 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名行常量表達(dá)式行常量表達(dá)式列常列常量表達(dá)式量表達(dá)式, 數(shù)組名數(shù)組名2行常量表達(dá)式行常量表達(dá)式2列常列常量表達(dá)式量表達(dá)式2;1數(shù)組元素在內(nèi)存中的排列順序?yàn)椤鞍葱写娣拧?,即先順序存放第一行的元素,再存放第二行,以此類推?. 設(shè)有一個(gè)m*n的數(shù)組x,則第i行第j列的元素xij在數(shù)組中的位置為:i*n+j(注意注意:行號(hào)、列號(hào)均從0開始計(jì)數(shù))。 信息工程

13、學(xué)院3可以把2維數(shù)組看作是一種特殊的1維數(shù)組:它的元素又是一個(gè)1維數(shù)組。例如,對(duì)x32,可以把x看作是一個(gè)1維數(shù)組,它有3個(gè)元素:x0、x1、x2,每個(gè)元素又是一個(gè)包含2個(gè)元素的1維數(shù)組,如圖6-4所示。即把x0、x1、x2看作是3個(gè)1維數(shù)組的名字。 Return信息工程學(xué)院6.2.2 2維數(shù)組元素的引用維數(shù)組元素的引用引用2維數(shù)組元素的形式為:數(shù)組名數(shù)組名行下標(biāo)表達(dá)式行下標(biāo)表達(dá)式列下標(biāo)表達(dá)式列下標(biāo)表達(dá)式1“行下標(biāo)表達(dá)式”和“列下標(biāo)表達(dá)式”,都應(yīng)是整型表達(dá)式或符號(hào)常量。2“行下標(biāo)表達(dá)式”和“列下標(biāo)表達(dá)式”的值,都應(yīng)在已定義數(shù)組大小的范圍內(nèi)。假設(shè)有數(shù)組x34,則可用的行下標(biāo)范圍為02,列下標(biāo)范圍

14、為03。3對(duì)基本數(shù)據(jù)類型的變量所能進(jìn)行的操作,也都適合于相同數(shù)據(jù)類型的2維數(shù)組元素。Return信息工程學(xué)院6.2.3 2維數(shù)組元素的初始化維數(shù)組元素的初始化1按行賦初值數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名行常量表達(dá)式行常量表達(dá)式列常量表達(dá)列常量表達(dá)式式第第0行初值表行初值表,第第1行初值表行初值表,最后最后1行初值表行初值表;賦值規(guī)則:將“第0行初值表”中的數(shù)據(jù),依次賦給第0行中各元素;將“第1行初值表”中的數(shù)據(jù),依次賦給第1行各元素;以此類推。2按2維數(shù)組在內(nèi)存中的排列順序給各元素賦初值數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)組名數(shù)組名行常量表達(dá)式行常量表達(dá)式列常量表達(dá)列常量表達(dá)式式初值表初值表;賦值規(guī)則:按2維數(shù)

15、組在內(nèi)存中的排列順序,將初值表中的數(shù)據(jù),依次賦給各元素。如果對(duì)全部元素都賦初值,則“行數(shù)”可以省略。注意注意:只能省略“行數(shù)”。 Return信息工程學(xué)院6.2.4 2維數(shù)組應(yīng)用舉例維數(shù)組應(yīng)用舉例 案例案例6.4 有M個(gè)學(xué)生,學(xué)習(xí)N門課程,已知所有學(xué)生的各科成績,編程:分別求每個(gè)學(xué)生的平均成績和每門課程的平均成績。 /*案例代碼文件名:AL6_4.C*/*功能:計(jì)算個(gè)人平均成績與各科平均成績,并在屏幕上顯示出來。*/#define NUM_std 5/*定義符號(hào)常量人數(shù)為5*/#define NUM_course 4/*定義符號(hào)常量課程為4*/#include stdio.hmain() in

16、t i,j; static float scoreNUM_std+1NUM_course+1=78,85,83,65, 88,91,89,93, 72,65,54,75,86,88,75,60, 69,60,50,72; 信息工程學(xué)院 for(i=0;iNUM_std;i+) for(j=0;jNUM_course;j+) scoreiNUM_course += scoreij;/*求第i個(gè)人的總成績*/ scoreNUM_stdj += scoreij; /*求第j門課的總成績*/ scoreiNUM_course /= NUM_course;/*求第i個(gè)人的平均成績*/ for(j=0;j

17、NUM_course;j+) scoreNUM_stdj /= NUM_std; /*求第j門課的平均成績*/ clrscr(); /*輸出表頭*/ printf(學(xué)生編號(hào) 課程1 課程2 課程3 課程4 個(gè)人平均n); /*輸出每個(gè)學(xué)生的各科成績和平均成績*/信息工程學(xué)院 for(i=0;iNUM_std;i+) printf(學(xué)生%dt,i+1); for(j=0;jNUM_course+1;j+) printf(%6.1ft,scoreij); printf(n); /*輸出1條短劃線*/ for(j=0;j8*(NUM_course+2);j+) printf(-); printf(n

18、課程平均); /*輸出每門課程的平均成績*/ for(j=0;jNUM_course;j+) printf(%6.1ft,scoreNUM_stdj); printf(n); getch(); 程序演程序演示示Return信息工程學(xué)院6.3 字符數(shù)組與字符串字符數(shù)組與字符串6.3.1 字符數(shù)組的逐個(gè)字符操作字符數(shù)組的逐個(gè)字符操作 6.3.2 字符數(shù)組的整體操作字符數(shù)組的整體操作6.3.3 常用的字符串處理函數(shù)常用的字符串處理函數(shù)Return信息工程學(xué)院6.3.1 字符數(shù)組的逐個(gè)字符操作字符數(shù)組的逐個(gè)字符操作案例案例:從鍵盤輸入一個(gè)字符串,回車鍵結(jié)束,并將字符串在屏幕上輸出。 main() in

19、t i; char str80; for(i=0;i80;i+) stri=getchar(); printf(*); /*以星號(hào)代替輸以星號(hào)代替輸入字符的個(gè)數(shù)入字符的個(gè)數(shù)*/ if(stri=x0d) break; /*若輸入回若輸入回車則終止循環(huán)車則終止循環(huán)*/ i=0; while(stri!=x0d) printf(%c,stri+); printf(n);信息工程學(xué)院1字符數(shù)組的定義字符數(shù)組的定義1維字符數(shù)組維字符數(shù)組,用于存儲(chǔ)和處理處理1個(gè)字符串個(gè)字符串,其定義格式與1維數(shù)值數(shù)組一樣。2維字符數(shù)組維字符數(shù)組,用于同時(shí)存儲(chǔ)和處理多個(gè)處理多個(gè)字符串字符串,其定義格式與2維數(shù)值數(shù)組一樣。

20、2字符數(shù)組的初始化字符數(shù)組的初始化字符數(shù)組的初始化,可以通過為每個(gè)數(shù)組元素指定初值字符來實(shí)現(xiàn)。 3字符數(shù)組的引用字符數(shù)組的引用 字符數(shù)組的逐個(gè)字符引用,與引用數(shù)值數(shù)組元素類似。信息工程學(xué)院 (1)字符數(shù)組的輸入 除了可以通過初始化使字符數(shù)組各元素得到初值外,也可以使用getchar()或scanf()函數(shù)輸入字符。 例如: char str10;for(i=0; i10; i+) scanf(%c, &stri);信息工程學(xué)院 (2)字符數(shù)組的輸出)字符數(shù)組的輸出 字符數(shù)組的輸出,可以用字符數(shù)組的輸出,可以用putchar()或或printf()函數(shù)。函數(shù)。 例如:例如: char s

21、tr10=c language;for(i=0; i10; i+) printf(%c, stri);printf(n); 注意注意:逐個(gè)字符輸入、輸出時(shí),要指出:逐個(gè)字符輸入、輸出時(shí),要指出元素的下標(biāo),而且使用元素的下標(biāo),而且使用“%c”格式符。另格式符。另外,從鍵盤上輸入字符時(shí),無需輸入字符外,從鍵盤上輸入字符時(shí),無需輸入字符的定界符的定界符單引號(hào);輸出時(shí),系統(tǒng)也不輸單引號(hào);輸出時(shí),系統(tǒng)也不輸出字符的定界符。出字符的定界符。Return信息工程學(xué)院6.3.2 字符數(shù)組的整體操作字符數(shù)組的整體操作案例案例6.6 字符數(shù)組的整體輸入與輸出。 /*案例代碼文件名:AL6_6.C*/*功能:將2維

22、字符數(shù)組進(jìn)行初始化,并在屏幕上輸出*/main() int i; char name59=張三山, 李四季, 王五魁, 劉六順, 趙七巧; for(i=0;i5;i+) printf(n%st,namei); /*namei代表該行數(shù)組元素的首地址*/ getch();程序演示 1字符串及其結(jié)束標(biāo)志字符串及其結(jié)束標(biāo)志 所謂字符串,是指若干有效字符的序列。C語言中的字符串,可以包括字母、數(shù)字、專用字符、轉(zhuǎn)義字符等。C語言規(guī)定:以0作為字符串結(jié)束標(biāo)志(0代表ASCII碼為0的字符,表示一個(gè)“空操作”,只起一個(gè)標(biāo)志作用)。因此可以對(duì)字符數(shù)組采用另一種方式進(jìn)行操作了字符數(shù)組的整體操作字符數(shù)組的整體操作

23、。信息工程學(xué)院 注意注意:由于系統(tǒng)在存儲(chǔ)字符串常量時(shí),會(huì)在串尾自動(dòng):由于系統(tǒng)在存儲(chǔ)字符串常量時(shí),會(huì)在串尾自動(dòng)加上加上1個(gè)結(jié)束標(biāo)志,所以無需人為地再加個(gè)結(jié)束標(biāo)志,所以無需人為地再加1個(gè)。個(gè)。另外,由于結(jié)束標(biāo)志也要在字符數(shù)組中占用一個(gè)元素另外,由于結(jié)束標(biāo)志也要在字符數(shù)組中占用一個(gè)元素的存儲(chǔ)空間,因此在說明字符數(shù)組長度時(shí),至少為字符串的存儲(chǔ)空間,因此在說明字符數(shù)組長度時(shí),至少為字符串所需長度加所需長度加1。2字符數(shù)組的整體初始化字符數(shù)組的整體初始化字符串設(shè)置了結(jié)束標(biāo)志以后,對(duì)字符數(shù)組的初始化,字符串設(shè)置了結(jié)束標(biāo)志以后,對(duì)字符數(shù)組的初始化,就可以用字符串常量來初始化字符數(shù)組。就可以用字符串常量來初始化

24、字符數(shù)組。3字符數(shù)組的整體引用字符數(shù)組的整體引用(1)字符串的輸入)字符串的輸入除了可以通過初始化使字符數(shù)組各元素得到初值外,除了可以通過初始化使字符數(shù)組各元素得到初值外,也可以使用也可以使用scanf()函數(shù)輸入字符串。函數(shù)輸入字符串。(2)字符串的輸出)字符串的輸出printf()函數(shù),不僅可以逐個(gè)輸出字符數(shù)組元素,還可函數(shù),不僅可以逐個(gè)輸出字符數(shù)組元素,還可以整體輸出存放在字符數(shù)組中的字符串。以整體輸出存放在字符數(shù)組中的字符串。Return信息工程學(xué)院6.3.3 常用的字符串處理函數(shù)常用的字符串處理函數(shù)字符串標(biāo)準(zhǔn)函數(shù)的原型在字符串標(biāo)準(zhǔn)函數(shù)的原型在頭文件頭文件string.h中。中。1輸入

25、字符串輸入字符串gets()函數(shù)函數(shù)(1)調(diào)用方式:)調(diào)用方式:gets(字符數(shù)組字符數(shù)組)( 2 ) 函 數(shù) 功 能 : 從 標(biāo) 準(zhǔn) 輸 入 設(shè) 備) 函 數(shù) 功 能 : 從 標(biāo) 準(zhǔn) 輸 入 設(shè) 備(stdin)鍵盤上,讀取鍵盤上,讀取1個(gè)字符串(可以包個(gè)字符串(可以包含空格),并將其存儲(chǔ)到字符數(shù)組中去。含空格),并將其存儲(chǔ)到字符數(shù)組中去。(3)使用說明)使用說明 1)gets()讀取的字符串,其長度沒有限讀取的字符串,其長度沒有限制,編程者要保證字符數(shù)組有足夠大的空間,制,編程者要保證字符數(shù)組有足夠大的空間,存放輸入的字符串。存放輸入的字符串。 2)該函數(shù)輸入的字符串中允許包含空格,)該函

26、數(shù)輸入的字符串中允許包含空格,而而scanf()函數(shù)不允許。函數(shù)不允許。信息工程學(xué)院2輸出字符串輸出字符串puts()函數(shù)函數(shù)(1)調(diào)用方式:)調(diào)用方式:puts(字符數(shù)組字符數(shù)組)(2)函數(shù)功能:把字符數(shù)組中所存)函數(shù)功能:把字符數(shù)組中所存放的字符串,輸出到標(biāo)準(zhǔn)輸出設(shè)備中去,放的字符串,輸出到標(biāo)準(zhǔn)輸出設(shè)備中去,并用并用n取代字符串的結(jié)束標(biāo)志取代字符串的結(jié)束標(biāo)志0。所以用所以用puts()函數(shù)輸出字符串時(shí),不要函數(shù)輸出字符串時(shí),不要求另加換行符。求另加換行符。( 3)使用說明)使用說明1)字符串中允許包含轉(zhuǎn)義字符,輸出字符串中允許包含轉(zhuǎn)義字符,輸出時(shí)產(chǎn)生一個(gè)控制操作。時(shí)產(chǎn)生一個(gè)控制操作。2)該

27、函數(shù)一次只能輸出一個(gè)字符串,該函數(shù)一次只能輸出一個(gè)字符串,而而printf()函數(shù)也能用來輸出字符串,且函數(shù)也能用來輸出字符串,且一次能輸出多個(gè)。一次能輸出多個(gè)。信息工程學(xué)院3字符串比較字符串比較strcmp()函數(shù)函數(shù)(1)調(diào)用方式:)調(diào)用方式:strcmp(字符串字符串1 ,字符串字符串2)其中其中“字符串字符串”可以是串常量,也可以是可以是串常量,也可以是1維字符數(shù)組。維字符數(shù)組。(2)函數(shù)功能:比較兩個(gè)字符串的大小。)函數(shù)功能:比較兩個(gè)字符串的大小。如果:字符串如果:字符串1=字符串字符串2,函數(shù)返回值等于,函數(shù)返回值等于0; 字符串字符串1字符串字符串2,函數(shù)返回值正整數(shù)。,函數(shù)返回

28、值正整數(shù)。信息工程學(xué)院 (3)使用說明)使用說明 1)如果一個(gè)字符串是另一個(gè)字符串)如果一個(gè)字符串是另一個(gè)字符串從頭開始的子串,則母串為大。從頭開始的子串,則母串為大。 2)不能使用關(guān)系運(yùn)算符)不能使用關(guān)系運(yùn)算符“”來來比較兩個(gè)字符串,只能用比較兩個(gè)字符串,只能用strcmp() 函數(shù)來處理。函數(shù)來處理。信息工程學(xué)院案例案例6.7 #include stdio.hmain() char pass_str80; int i=0; /*檢驗(yàn)密碼*/ while(1) clrscr(); printf(請(qǐng)輸入密碼n); gets(pass_str); 信息工程學(xué)院 if(strcmp(pass_str,“password”)!=0) /*口令

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論