C語(yǔ)言數(shù)組詳細(xì)講解_第1頁(yè)
C語(yǔ)言數(shù)組詳細(xì)講解_第2頁(yè)
C語(yǔ)言數(shù)組詳細(xì)講解_第3頁(yè)
C語(yǔ)言數(shù)組詳細(xì)講解_第4頁(yè)
C語(yǔ)言數(shù)組詳細(xì)講解_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、一、字符數(shù)組的定義一維字符數(shù)組:用于存儲(chǔ)和處理1個(gè)字符串,char str20;二維字符數(shù)組:用于同時(shí)存儲(chǔ)和處理多個(gè)字符串char coun try1020;cou ntry:第i個(gè)字符串二. 字符數(shù)組的初始化 字符數(shù)組的初始化.1.可以通過為每個(gè)數(shù)組元素指定初值字符來實(shí)現(xiàn)。char str10= 'I',' ','a','m',' ', hchar str ="I am happy"char str ="I am happ y"其定義格式與一維數(shù)值數(shù)組一樣。,其定義格式與二

2、維數(shù)值數(shù)組一樣。,'a',' p',' p','y';可以省略花括號(hào),如下所示char country1020=“ china ” , ” japanese ” ,;注意:上述這種字符數(shù)組的整體賦值只能在字符數(shù)組初始化時(shí)使用,不能用于字符數(shù)組的賦值,字符數(shù)組的賦值只能對(duì)其元素一一賦值,下面的賦值方法是錯(cuò)誤的char str15;str="I am happ y"strc py (str, "I am happy “);不是用單個(gè)字符作為初值,而是用一個(gè)字符串(注意:字符串的兩端是用雙引號(hào)“”而不是 單

3、引號(hào)括起來的)作為初值。'a'“a”區(qū)別三、字符數(shù)組的引用字符數(shù)組的逐個(gè)字符引用,與引用數(shù)值數(shù)組元素類似。(1 )字符數(shù)組的輸入除了可以通過初始化使字符數(shù)組各元素得到初值外, 函數(shù)輸入字符。例如:char str10;for(i=0; i<10; i+) scan f("%c", &str)fflush(stdi n); /*也可以使用getcharO 或seanf()清除鍵盤輸入緩沖區(qū)*/(2 )字符數(shù)組的輸出字符數(shù)組的輸出,可以用 putchar()或printf() 例如:charstr10="c Ian guage"

4、函數(shù)。for(i=0; i<10; i+) prin tf("n");prin tf("%c", str)注意:逐個(gè)字符輸入、輸出時(shí),要指出元素的下標(biāo),而且使用“c格式符。另外,從鍵盤上輸入字符時(shí), 無(wú)需輸入字符的定界符一一單引號(hào);輸出時(shí),系統(tǒng)也不輸出字符的定界符。字符數(shù)組的整體操作 案例字符數(shù)組的整體輸入與輸出。*/*功能:將2維字符數(shù)組進(jìn)行初始化,并在屏幕上輸出main () int i;char name59=" 張三山","李四季","王五魁","劉六順",&q

5、uot;趙七巧" for(i=0;i<5;i+)l*name代表該行數(shù)組元素的首地址*/prin tf(" n%st", name);1. 字符串及其結(jié)束標(biāo)志所謂字符串,是指若干有效字符的序列。C語(yǔ)言中的字符串,可以包括字母、數(shù)字、專用字符、轉(zhuǎn)義字符等。C語(yǔ)言規(guī)定:以 0 '作為字符串結(jié)束標(biāo)志(0 '代表ASCII碼為0的字符,表示一個(gè)“空 操作”,只起一個(gè)標(biāo)志作用)。因此可以對(duì)字符數(shù)組采用另一種方式進(jìn)行操作了一一字符數(shù)組 的整體操作。注意:由于系統(tǒng)在存儲(chǔ)字符串常量時(shí),會(huì)在串尾自動(dòng)加上1個(gè)結(jié)束標(biāo)志,所以無(wú)需人為地再加1個(gè)。另外,由于結(jié)束標(biāo)志也

6、要在字符數(shù)組中占用一個(gè)元素的存儲(chǔ)空間, 時(shí),至少為字符串所需長(zhǎng)度加1。2. 字符數(shù)組的整體初始化字符串設(shè)置了結(jié)束標(biāo)志以后,對(duì)字符數(shù)組的初始化,就可以用字符串常量來初始化字符數(shù) 組。3. 字符數(shù)組的整體引用(1) 字符串的輸入 除了可以通過初始化使字符數(shù)組各元素得到初值外,也可以使用 串。(2) 字符串的輸出printf() 函數(shù),不僅可以逐個(gè)輸出字符數(shù)組元素,還可以整體輸出存放在字符數(shù)組中的字符串。四、常用的字符串處理函數(shù) 字符串標(biāo)準(zhǔn)函數(shù)的原型在頭文件stri ng.h1. 輸入字符串gets()函數(shù)(1) 調(diào)用方式:gets(字符數(shù)組)(2) 函數(shù)功能:從標(biāo)準(zhǔn)輸入設(shè)備(stdi n) 并將其

7、存儲(chǔ)到字符數(shù)組中去。(3 )使用說明1) gets()讀取的字符串,其長(zhǎng)度沒有限制, 輸入的字符串。2) 該函數(shù)輸入的字符串中允許包含空格,而2. 輸出字符串 Puts()函數(shù)(1) 調(diào)用方式:puts(字符數(shù)組)(2) 函數(shù)功能:把字符數(shù)組中所存放的字符串,輸出到標(biāo)準(zhǔn)輸出設(shè)備中去,并用n '取 代字符串的結(jié)束標(biāo)志 0 '所以用puts()函數(shù)輸出字符串時(shí),不要求另加換行符。(3) 使用說明1) 字符串中允許包含轉(zhuǎn)義字符,輸出時(shí)產(chǎn)生一個(gè)控制操作。2) 該函數(shù)一次只能輸出一個(gè)字符串,而 多個(gè)。3. 字符串比較 strcmp()函數(shù)(1)調(diào)用方式:intstrcmp(字符串其中“字

8、符串”可以是串常量,也可以是(2 )函數(shù)功能:比較兩個(gè)字符串的大小。因此在說明字符數(shù)組長(zhǎng)度scanf()函數(shù)輸入字符中。鍵盤上,讀取 1個(gè)字符串(可以包含空格)編程者要保證字符數(shù)組有足夠大的空間,存放scanf()函數(shù)不允許。printfO函數(shù)也能用來輸出字符串,且一次能輸出1 ,字符串2)1維字符數(shù)組。如果:字符串 仁字符串2,函數(shù)返回值等于字符串1字符串2,字符串1字符串2,0 ;函數(shù)返回值負(fù)整數(shù); 函數(shù)返回值正整數(shù)。(3 )使用說明1) 如果一個(gè)字符串是另一個(gè)字符串從頭開始的子串,則母串為大。2) 不能使用關(guān)系運(yùn)算符“=”來比較兩個(gè)字符串,只能用strcm p()函數(shù)來處理。 案例 ge

9、ts函數(shù)和strcmp函數(shù)的應(yīng)用。/*功能:簡(jiǎn)單密碼檢測(cè)程序*/#i nclude "stdio.h" main ()charp ass_str80;p assstr*/int i=0;/*檢驗(yàn)密碼*/ while(1)/*定義字符數(shù)組if(strc mp(p ass_str.printf("請(qǐng)輸入密碼n");gets( pass_str);“ password ”)!=0) prin tf("/*輸入密碼*/* 口令錯(cuò)*/口令錯(cuò)誤,按任意鍵繼續(xù)”);elsebreak;/*輸入正確的密碼,中止循環(huán)*/getch();i+;if(i=3) ex

10、it(0); /*輸入三次錯(cuò)誤的密碼,退出程序*/*輸入正確密碼所進(jìn)入的程序段*/4. 拷貝字符串 StrcpyO 函數(shù)(1) 調(diào)用方式:strcpy(字符數(shù)組,字符串) 其中“字符串”可以是串常量,也可以是字符數(shù)組。(2) 函數(shù)功能:將“字符串”完整地復(fù)制到“字符數(shù)組”中,字符數(shù)組中原有內(nèi)容被覆蓋。(3 )使用說明1) 字符數(shù)組必須定義得足夠大,以便容納復(fù)制過來的字符串。復(fù)制時(shí),連同結(jié)束標(biāo)志 一起復(fù)制。2) 不能用賦值運(yùn)算符“=”將一個(gè)字符串直接賦值給一個(gè)字符數(shù)組,只能用 來處理。Str= ” Hello world! ”5. 連接字符串(1) 調(diào)用方式:(2) 函數(shù)功能: 中?!白址麛?shù)組”

11、 作中未被修改。(3 )使用說明1) 由于沒有邊界檢查,編程者要注意保證“字符數(shù)組”定義得足夠大,以便容納連接 后的目標(biāo)字符串;否則,會(huì)因長(zhǎng)度不夠而產(chǎn)生問題。2) 連接前兩個(gè)字符串都有結(jié)束標(biāo)志'0',連接后“字符數(shù)組”中存儲(chǔ)的字符串的結(jié)束 標(biāo)志'0'被舍棄,只在目標(biāo)串的最后保留一個(gè) '0'。6. 求字符串長(zhǎng)度strlen() 函數(shù)(len是length的縮寫)(1) 調(diào)用方式:int strlen(字符串)(2) 函數(shù)功能:求字符串(常量或字符數(shù)組)的實(shí)際長(zhǎng)度(不包含結(jié)束標(biāo)志)7. 將字符串中大寫字母轉(zhuǎn)換成小寫strlwr()(1) 調(diào)用方式:s

12、trlwr(字符串)(2) 函數(shù)功能:將字符串中的大寫字母轉(zhuǎn)換成小寫, 符)不轉(zhuǎn)換。&將字符串中小寫字母轉(zhuǎn)換成大寫-(1) 調(diào)用方式:strupr(字符串)'0'strcpyO 函數(shù)錯(cuò)誤strcat()函數(shù)strcat(字符數(shù)組,字符串)把“字符串”連接到“字符數(shù)組”中的字符串尾端,并存儲(chǔ)于“字符數(shù)組” 中原來的結(jié)束標(biāo)志,被“字符串”的第一個(gè)字符覆蓋,而“字符串”在操stru pr()(2) 函數(shù)功能:將字符串中小寫字母轉(zhuǎn)換成大寫,函數(shù)其它字符(包括小寫字母和非字母字函數(shù)其它字符(包括大寫字母和非字母字符)不轉(zhuǎn)換。典型示例main函數(shù)中輸入字符串,并輸出其長(zhǎng)度。1、以上

13、函數(shù)功能自定義完成 題目:寫一個(gè)函數(shù),求一個(gè)字符串的長(zhǎng)度,在 main ()in t le n;char str20;pnntf("pl ease input a stri ng:n");sca nf("%s",str);len=len gth(str);prin tf("the stri ng has %d characters.",le n);in t le ngth(char p )int i=0;while(p!= ' 0 ' )+i;return i;“ hello ”2、字符串與整數(shù)問題“1234”,得(1

14、)編寫程序,將輸入的數(shù)字字符串轉(zhuǎn)換成一個(gè)相應(yīng)的整數(shù)。如輸入字符串為 到整數(shù)-1234123412343、求子串問題題目:計(jì)算字符串中子串出現(xiàn)的次數(shù)Str1:This is a book,that is a penStr2:is# include "string.h"# include "stdio.h"main () char str120,str220;int sum=0,i=0,j=0;printfC'pl ease input two stri ngsn");sca nf("%s%s",str1,str2);while(str!='0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論