第8章文本信息處理程序設(shè)計(jì)(1)_第1頁(yè)
第8章文本信息處理程序設(shè)計(jì)(1)_第2頁(yè)
第8章文本信息處理程序設(shè)計(jì)(1)_第3頁(yè)
第8章文本信息處理程序設(shè)計(jì)(1)_第4頁(yè)
第8章文本信息處理程序設(shè)計(jì)(1)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)8.1 字符數(shù)組與字符串字符數(shù)組與字符串8.2 字符串的輸入輸出字符串的輸入輸出8.3 對(duì)字符串的操作對(duì)字符串的操作程序設(shè)計(jì)基礎(chǔ)用來(lái)存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組用來(lái)存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組字符數(shù)組中的一個(gè)元素存放一個(gè)字符字符數(shù)組中的一個(gè)元素存放一個(gè)字符定義字符數(shù)組的方法與定義數(shù)值型數(shù)定義字符數(shù)組的方法與定義數(shù)值型數(shù)組的方法類似組的方法類似程序設(shè)計(jì)基礎(chǔ)char c10;c0=I; c1= ;c2=a; c3=m;c4= ; c5=h; c6=a; c7=p; c8=p; c9=y;Iam happyc0c1c2c3c4c5c6c7c8c9程序設(shè)計(jì)基礎(chǔ)char c10=

2、I, ,a,m, ,h,a,p,p,y; char c10=c, ,p,r,o,g,r,a,m;Iam happyc0c1c2c3c4c5c6c7c8c9cpro gram 0c0c1c2c3c4c5c6c7c8c9程序設(shè)計(jì)基礎(chǔ)char diamond55= , ,*, ,*, ,*, *, , , ,*, ,*, ,*, , ,* ;程序設(shè)計(jì)基礎(chǔ)例例1 輸出一個(gè)已知的字符串。輸出一個(gè)已知的字符串。解題思路:解題思路:u定義一個(gè)字符數(shù)組,并用定義一個(gè)字符數(shù)組,并用“初始化列初始化列表表”對(duì)其賦以初值對(duì)其賦以初值u用循環(huán)逐個(gè)輸出此字符數(shù)組中的字符用循環(huán)逐個(gè)輸出此字符數(shù)組中的字符程序設(shè)計(jì)基礎(chǔ)#in

3、clude int main() char c15=I, ,a,m, ,a, ,s,t,u,d,e,n,t,.; int i; for(i=0;i15;i+) printf(%c,ci); printf(n); return 0; 例例1 輸出一個(gè)已知的字符串輸出一個(gè)已知的字符串程序設(shè)計(jì)基礎(chǔ)例例2 輸出一個(gè)菱形圖。輸出一個(gè)菱形圖。解題思路:解題思路:u定義一個(gè)字符型的二維數(shù)組,用定義一個(gè)字符型的二維數(shù)組,用“初初始化列表始化列表”進(jìn)行初始化進(jìn)行初始化u用嵌套的用嵌套的for循環(huán)輸出字符數(shù)組中的循環(huán)輸出字符數(shù)組中的所有元素。所有元素。程序設(shè)計(jì)基礎(chǔ)#include int main() char

4、diamond5= , ,*, ,*, ,*,*, , , ,*, ,*, ,*, , ,*; int i,j; for (i=0;i5;i+) for (j=0;j5;j+) printf(%c,diamondij); printf(n); return 0;程序設(shè)計(jì)基礎(chǔ)在在C語(yǔ)言中,是將字符串作為語(yǔ)言中,是將字符串作為字符數(shù)組字符數(shù)組來(lái)處理的來(lái)處理的關(guān)心的是字符串的關(guān)心的是字符串的有效長(zhǎng)度有效長(zhǎng)度而不是字符而不是字符數(shù)組的長(zhǎng)度數(shù)組的長(zhǎng)度為了測(cè)定字符串的實(shí)際長(zhǎng)度,為了測(cè)定字符串的實(shí)際長(zhǎng)度,C語(yǔ)言規(guī)語(yǔ)言規(guī)定了字符串結(jié)束標(biāo)志定了字符串結(jié)束標(biāo)志0從從ASCII碼表可以查到,碼表可以查到,ASCII

5、碼為碼為0的字符不是一個(gè)可以顯示的字符,而是的字符不是一個(gè)可以顯示的字符,而是一個(gè)一個(gè)“空操作符空操作符”,即它什么也不做,即它什么也不做程序設(shè)計(jì)基礎(chǔ) char c=”I am happy”;可寫(xiě)成可寫(xiě)成char c=”I am happy”;相當(dāng)于相當(dāng)于char c11=”I am happy”;程序設(shè)計(jì)基礎(chǔ)char c10=”China”;可寫(xiě)成可寫(xiě)成char c10=”China”;從從c5開(kāi)始,元素值均為開(kāi)始,元素值均為0只顯示只顯示printf(”%s”,c);China 00000程序設(shè)計(jì)基礎(chǔ)字符數(shù)組的輸入輸出可以有兩種方法字符數(shù)組的輸入輸出可以有兩種方法:u 逐個(gè)字符輸入輸出逐個(gè)

6、字符輸入輸出(%c)u 整個(gè)字符串一次輸入輸出整個(gè)字符串一次輸入輸出(%s)輸出的字符中不包括結(jié)束符輸出的字符中不包括結(jié)束符0用用%s輸出字符串時(shí),輸出字符串時(shí),printf函數(shù)中的函數(shù)中的輸出項(xiàng)是字符數(shù)組名,不是數(shù)組元素名輸出項(xiàng)是字符數(shù)組名,不是數(shù)組元素名程序設(shè)計(jì)基礎(chǔ)如果一個(gè)字符數(shù)組中包含如果一個(gè)字符數(shù)組中包含多個(gè)多個(gè)0,則,則遇第一個(gè)遇第一個(gè)0時(shí)輸出就結(jié)束時(shí)輸出就結(jié)束可以用可以用scanf函數(shù)輸入一個(gè)字符串函數(shù)輸入一個(gè)字符串scanf函數(shù)中的輸入項(xiàng)函數(shù)中的輸入項(xiàng)c是已定義的字是已定義的字符數(shù)組名,輸入的字符串應(yīng)符數(shù)組名,輸入的字符串應(yīng)短于短于已定義已定義的字符數(shù)組的長(zhǎng)度的字符數(shù)組的長(zhǎng)度程序

7、設(shè)計(jì)基礎(chǔ)char c6;scanf(”%s”,c); China 系統(tǒng)自動(dòng)在系統(tǒng)自動(dòng)在China后面加一個(gè)后面加一個(gè)0程序設(shè)計(jì)基礎(chǔ)char str15,str25,str35;scanf(”%s%s%s”,str1,str2,str3);How are you? How00str1are00str2you?0str3程序設(shè)計(jì)基礎(chǔ) 在在C函數(shù)庫(kù)中提供了一些用來(lái)專門(mén)處理字符串的函數(shù)庫(kù)中提供了一些用來(lái)專門(mén)處理字符串的函數(shù),使用方便函數(shù),使用方便1.puts函數(shù)函數(shù)-輸出字符串的函數(shù)輸出字符串的函數(shù) 其一般形式為其一般形式為: puts (字符數(shù)組字符數(shù)組) 作用是將一個(gè)字符串輸出到終端作用是將一個(gè)字

8、符串輸出到終端char str20=”China”;puts(str); 輸出輸出China程序設(shè)計(jì)基礎(chǔ)2. gets函數(shù)函數(shù)-輸入字符串的函數(shù)輸入字符串的函數(shù) 其一般形式為其一般形式為: gets(字符數(shù)組字符數(shù)組) 作用是輸入一個(gè)字符串到字符數(shù)組作用是輸入一個(gè)字符串到字符數(shù)組char str20;gets(str); Computer 程序設(shè)計(jì)基礎(chǔ) 在在C函數(shù)庫(kù)中提供了一些用來(lái)專門(mén)處理字符串的函數(shù)庫(kù)中提供了一些用來(lái)專門(mén)處理字符串的函數(shù),使用方便函數(shù),使用方便1. strcat函數(shù)函數(shù)-字符串連接函數(shù)字符串連接函數(shù) 其一般形式為其一般形式為: strcat(字符數(shù)組字符數(shù)組1,字符數(shù)組,字符

9、數(shù)組2) 其作用是把兩個(gè)字符串連接起來(lái),把字符串其作用是把兩個(gè)字符串連接起來(lái),把字符串2接接到字符串到字符串1的后面,結(jié)果放在字符數(shù)組的后面,結(jié)果放在字符數(shù)組1中中使用字符串函數(shù)時(shí)使用字符串函數(shù)時(shí),在程序開(kāi)頭用在程序開(kāi)頭用#include 程序設(shè)計(jì)基礎(chǔ)2. strcat函數(shù)函數(shù)-字符串連接函數(shù)字符串連接函數(shù) char str130=”P(pán)eople”; char str2=”China”; printf(”%s”, strcat(str1,str2); 輸出:輸出:PeopleChina要足夠大要足夠大程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 strcpy一

10、般形式為一般形式為: strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2) 作用是將字符串作用是將字符串2復(fù)制到字符數(shù)組復(fù)制到字符數(shù)組1中去中去char str110,str2=”China”;strcpy(str1,str2);China 00000str1程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 strcpy一般形式為一般形式為: strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2) 作用是將字符串作用是將字符串2復(fù)制到字符數(shù)組復(fù)制到字符數(shù)組1中去中去char str110,str2=”China”;strcpy(str1,str2);China 0000

11、0str1要足夠大要足夠大程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 strcpy一般形式為一般形式為: strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2) 作用是將字符串作用是將字符串2復(fù)制到字符數(shù)組復(fù)制到字符數(shù)組1中去中去char str110,str2=”China”;strcpy(str1,str2);數(shù)組名形式數(shù)組名形式程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 strcpy一般形式為一般形式為: strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2) 作用是將字符串作用是將字符串2復(fù)制到字符數(shù)組復(fù)制到字符數(shù)組1中去

12、中去char str110,str2=”China”;strcpy(str1,str2);數(shù)組名數(shù)組名或或字符串常量字符串常量程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 strcpy一般形式為一般形式為: strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2) 作用是將字符串作用是將字符串2復(fù)制到字符數(shù)組復(fù)制到字符數(shù)組1中去中去char str110,str2=”China”;strcpy(str1,str2); 相當(dāng)于相當(dāng)于strcpy(str1,”China”);程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 char str

13、110,str2=”China”; str1=”China”; 錯(cuò)誤錯(cuò)誤 str1=str2; 錯(cuò)誤錯(cuò)誤程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 可以用可以用strncpy函數(shù)將字符串函數(shù)將字符串2中前面中前面n個(gè)字符復(fù)制到字符數(shù)組個(gè)字符復(fù)制到字符數(shù)組1中去中去 strncpy(str1,str2,2);u作用是將作用是將str2中最前面中最前面2個(gè)字符復(fù)制到個(gè)字符復(fù)制到str1中,取代中,取代str1中原有的最前面中原有的最前面2個(gè)字符個(gè)字符u復(fù)制的字符個(gè)數(shù)復(fù)制的字符個(gè)數(shù)n不應(yīng)多于不應(yīng)多于str1中原有的字符中原有的字符程序設(shè)計(jì)基礎(chǔ)4. strcmp函數(shù)

14、函數(shù)-字符串比較函數(shù)字符串比較函數(shù) 其一般形式為其一般形式為 strcmp(字符串字符串1,字符串,字符串2) 作用是比較字符串作用是比較字符串1和字符串和字符串2 strcmp(str1,str2); strcmp(”China”,”Korea”); strcmp(str1,”Beijing”);程序設(shè)計(jì)基礎(chǔ)4. strcmp函數(shù)函數(shù)-字符串比較函數(shù)字符串比較函數(shù) 字符串比較的規(guī)則是:將兩個(gè)字符串自左字符串比較的規(guī)則是:將兩個(gè)字符串自左至右逐個(gè)字符相比,直到出現(xiàn)不同的字符至右逐個(gè)字符相比,直到出現(xiàn)不同的字符或遇到或遇到0為止為止 如全部字符相同,認(rèn)為兩個(gè)字符串相等如全部字符相同,認(rèn)為兩個(gè)字符

15、串相等 若出現(xiàn)不相同的字符,則以第一對(duì)不相同若出現(xiàn)不相同的字符,則以第一對(duì)不相同的字符的比較結(jié)果為準(zhǔn)的字符的比較結(jié)果為準(zhǔn)程序設(shè)計(jì)基礎(chǔ)4. strcmp函數(shù)函數(shù)-字符串比較函數(shù)字符串比較函數(shù) ”A”A” ”computer”compare” ”these”that” ”1A”$20” ”CHINA”CANADA” ”DOG”TSINGHUA”程序設(shè)計(jì)基礎(chǔ)4. strcmp函數(shù)函數(shù)-字符串比較函數(shù)字符串比較函數(shù) 比較的結(jié)果由函數(shù)值帶回比較的結(jié)果由函數(shù)值帶回u如果字符串如果字符串1=字符串字符串2,則函數(shù)值為,則函數(shù)值為0u如果字符串如果字符串1字符串字符串2,則函數(shù)值為一個(gè),則函數(shù)值為一個(gè)正整數(shù)正

16、整數(shù)u如果字符串如果字符串1str2) printf(”yes”); 錯(cuò)誤錯(cuò)誤if(strcmp(str1,str2)0) printf(”yes”); 正確正確程序設(shè)計(jì)基礎(chǔ)5. strlen函數(shù)函數(shù)-測(cè)字符串長(zhǎng)度的函數(shù)測(cè)字符串長(zhǎng)度的函數(shù) 其一般形式為其一般形式為: strlen (字符數(shù)組字符數(shù)組) 它是測(cè)試字符串長(zhǎng)度的函數(shù)它是測(cè)試字符串長(zhǎng)度的函數(shù) 函數(shù)的值為字符串中的實(shí)際長(zhǎng)度函數(shù)的值為字符串中的實(shí)際長(zhǎng)度程序設(shè)計(jì)基礎(chǔ)5. strlen函數(shù)函數(shù)-測(cè)字符串長(zhǎng)度的函數(shù)測(cè)字符串長(zhǎng)度的函數(shù) char str10=”China”; printf(”%d”,strlen(str); 輸出結(jié)果是輸出結(jié)果是5

17、 也可以直接測(cè)試字符串常量的長(zhǎng)度也可以直接測(cè)試字符串常量的長(zhǎng)度 strlen(”China”);程序設(shè)計(jì)基礎(chǔ)6. strlwr函數(shù)函數(shù)-轉(zhuǎn)換為小寫(xiě)的函數(shù)轉(zhuǎn)換為小寫(xiě)的函數(shù) 其一般形式為其一般形式為 strlwr (字符串字符串) 函數(shù)的作用是將字符串中大寫(xiě)字母換成函數(shù)的作用是將字符串中大寫(xiě)字母換成小寫(xiě)字母小寫(xiě)字母程序設(shè)計(jì)基礎(chǔ)7. strupr函數(shù)函數(shù)-轉(zhuǎn)換為大寫(xiě)的函數(shù)轉(zhuǎn)換為大寫(xiě)的函數(shù) 其一般形式為其一般形式為 strupr (字符串字符串) 函數(shù)的作用是將字符串中小寫(xiě)字母換成函數(shù)的作用是將字符串中小寫(xiě)字母換成大寫(xiě)字母大寫(xiě)字母程序設(shè)計(jì)基礎(chǔ) 例例4 輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)輸入一行字符,統(tǒng)計(jì)其

18、中有多少個(gè)單詞,單詞之間用空格分隔開(kāi)。單詞,單詞之間用空格分隔開(kāi)。 解題思路:?jiǎn)栴}的關(guān)鍵是怎樣確定解題思路:?jiǎn)栴}的關(guān)鍵是怎樣確定“出出現(xiàn)一個(gè)新單詞了現(xiàn)一個(gè)新單詞了”u 從第從第1個(gè)字符開(kāi)始逐個(gè)字符進(jìn)行檢查,判斷個(gè)字符開(kāi)始逐個(gè)字符進(jìn)行檢查,判斷此字符是否是新單詞的開(kāi)頭,如果是,就此字符是否是新單詞的開(kāi)頭,如果是,就使變量使變量num的值加的值加1,最后得到的,最后得到的num的的值就是單詞總數(shù)值就是單詞總數(shù)程序設(shè)計(jì)基礎(chǔ)u判斷是否出現(xiàn)新單詞,可以由是否有空格出判斷是否出現(xiàn)新單詞,可以由是否有空格出現(xiàn)來(lái)決定現(xiàn)來(lái)決定(連續(xù)的若干個(gè)空格作為出現(xiàn)一次連續(xù)的若干個(gè)空格作為出現(xiàn)一次空格;一行開(kāi)頭的空格不統(tǒng)計(jì)在

19、內(nèi)空格;一行開(kāi)頭的空格不統(tǒng)計(jì)在內(nèi))u如果測(cè)出某一個(gè)字符為非空格,而它的前面如果測(cè)出某一個(gè)字符為非空格,而它的前面的字符是空格,則表示的字符是空格,則表示“新的單詞開(kāi)始了新的單詞開(kāi)始了”,此時(shí)使,此時(shí)使num累加累加1u如果當(dāng)前字符為非空格而其前面的字符也是如果當(dāng)前字符為非空格而其前面的字符也是非空格,則非空格,則num不應(yīng)再累加不應(yīng)再累加1程序設(shè)計(jì)基礎(chǔ)u用變量用變量word作為判別當(dāng)前是否開(kāi)始了一個(gè)作為判別當(dāng)前是否開(kāi)始了一個(gè)新單詞的標(biāo)志,若新單詞的標(biāo)志,若word=0表示未出現(xiàn)新表示未出現(xiàn)新單詞,如出現(xiàn)了新單詞,就把單詞,如出現(xiàn)了新單詞,就把word置成置成1u前面一個(gè)字符是否空格可以從前面一

20、個(gè)字符是否空格可以從word的值看的值看出來(lái),若出來(lái),若word等于等于0,則表示前一個(gè)字符,則表示前一個(gè)字符是空格;如果是空格;如果word等于等于1,意味著前一個(gè),意味著前一個(gè)字符為非空格字符為非空格程序設(shè)計(jì)基礎(chǔ)Yc=空格word=0Nword=0Yword=1num+Nif(c= ) word=0; else if(word=0) word=1; num+; 程序設(shè)計(jì)基礎(chǔ)當(dāng)前字符當(dāng)前字符I Ia am ma ab bo oy y. .是否空格是否空格否否 是是 否否 否否 是是 否否 是是 否否 否否 否否 否否wordword原值原值0 01 10 01 11 10 01 10 01 11 11 1新單詞開(kāi)始否新單詞開(kāi)始否 是是 否否 是是 否否 否否 是是 否否 是是 否否 否否 否否wordword新值新值1 10 01 11 10 01 10 01 11 11 11 1numnum值值1 11 12 22 22 23 33 34 44 44 44 4程序設(shè)計(jì)基礎(chǔ) char string81,c; int i,num=0,word=0; gets(string); for (i=0;(c=stringi)!=0;i+) if(c= ) word=0; else

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論