




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、程序設(shè)計(jì)基礎(chǔ)程序設(shè)計(jì)基礎(chǔ)8.1 字符數(shù)組與字符串字符數(shù)組與字符串8.2 字符串的輸入輸出字符串的輸入輸出8.3 對字符串的操作對字符串的操作程序設(shè)計(jì)基礎(chǔ)用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組用來存放字符數(shù)據(jù)的數(shù)組是字符數(shù)組字符數(shù)組中的一個元素存放一個字符字符數(shù)組中的一個元素存放一個字符定義字符數(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 輸出一個已知的字符串。輸出一個已知的字符串。解題思路:解題思路:u定義一個字符數(shù)組,并用定義一個字符數(shù)組,并用“初始化列初始化列表表”對其賦以初值對其賦以初值u用循環(huán)逐個輸出此字符數(shù)組中的字符用循環(huán)逐個輸出此字符數(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 輸出一個已知的字符串輸出一個已知的字符串程序設(shè)計(jì)基礎(chǔ)例例2 輸出一個菱形圖。輸出一個菱形圖。解題思路:解題思路:u定義一個字符型的二維數(shù)組,用定義一個字符型的二維數(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語言中,是將字符串作為語言中,是將字符串作為字符數(shù)組字符數(shù)組來處理的來處理的關(guān)心的是字符串的關(guān)心的是字符串的有效長度有效長度而不是字符而不是字符數(shù)組的長度數(shù)組的長度為了測定字符串的實(shí)際長度,為了測定字符串的實(shí)際長度,C語言規(guī)語言規(guī)定了字符串結(jié)束標(biāo)志定了字符串結(jié)束標(biāo)志0從從ASCII碼表可以查到,碼表可以查到,ASCII
5、碼為碼為0的字符不是一個可以顯示的字符,而是的字符不是一個可以顯示的字符,而是一個一個“空操作符空操作符”,即它什么也不做,即它什么也不做程序設(shè)計(jì)基礎(chǔ) char c=”I am happy”;可寫成可寫成char c=”I am happy”;相當(dāng)于相當(dāng)于char c11=”I am happy”;程序設(shè)計(jì)基礎(chǔ)char c10=”China”;可寫成可寫成char c10=”China”;從從c5開始,元素值均為開始,元素值均為0只顯示只顯示printf(”%s”,c);China 00000程序設(shè)計(jì)基礎(chǔ)字符數(shù)組的輸入輸出可以有兩種方法字符數(shù)組的輸入輸出可以有兩種方法:u 逐個字符輸入輸出逐個
6、字符輸入輸出(%c)u 整個字符串一次輸入輸出整個字符串一次輸入輸出(%s)輸出的字符中不包括結(jié)束符輸出的字符中不包括結(jié)束符0用用%s輸出字符串時,輸出字符串時,printf函數(shù)中的函數(shù)中的輸出項(xiàng)是字符數(shù)組名,不是數(shù)組元素名輸出項(xiàng)是字符數(shù)組名,不是數(shù)組元素名程序設(shè)計(jì)基礎(chǔ)如果一個字符數(shù)組中包含如果一個字符數(shù)組中包含多個多個0,則,則遇第一個遇第一個0時輸出就結(jié)束時輸出就結(jié)束可以用可以用scanf函數(shù)輸入一個字符串函數(shù)輸入一個字符串scanf函數(shù)中的輸入項(xiàng)函數(shù)中的輸入項(xiàng)c是已定義的字是已定義的字符數(shù)組名,輸入的字符串應(yīng)符數(shù)組名,輸入的字符串應(yīng)短于短于已定義已定義的字符數(shù)組的長度的字符數(shù)組的長度程序
7、設(shè)計(jì)基礎(chǔ)char c6;scanf(”%s”,c); China 系統(tǒng)自動在系統(tǒng)自動在China后面加一個后面加一個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ù)庫中提供了一些用來專門處理字符串的函數(shù)庫中提供了一些用來專門處理字符串的函數(shù),使用方便函數(shù),使用方便1.puts函數(shù)函數(shù)-輸出字符串的函數(shù)輸出字符串的函數(shù) 其一般形式為其一般形式為: puts (字符數(shù)組字符數(shù)組) 作用是將一個字符串輸出到終端作用是將一個字
8、符串輸出到終端char str20=”China”;puts(str); 輸出輸出China程序設(shè)計(jì)基礎(chǔ)2. gets函數(shù)函數(shù)-輸入字符串的函數(shù)輸入字符串的函數(shù) 其一般形式為其一般形式為: gets(字符數(shù)組字符數(shù)組)作用是輸入一個字符串到字符數(shù)組作用是輸入一個字符串到字符數(shù)組char str20;gets(str); Computer 程序設(shè)計(jì)基礎(chǔ) 在在C函數(shù)庫中提供了一些用來專門處理字符串的函數(shù)庫中提供了一些用來專門處理字符串的函數(shù),使用方便函數(shù),使用方便1. strcat函數(shù)函數(shù)-字符串連接函數(shù)字符串連接函數(shù) 其一般形式為其一般形式為: strcat(字符數(shù)組字符數(shù)組1,字符數(shù)組,字符數(shù)
9、組2) 其作用是把兩個字符串連接起來,把字符串其作用是把兩個字符串連接起來,把字符串2接接到字符串到字符串1的后面,結(jié)果放在字符數(shù)組的后面,結(jié)果放在字符數(shù)組1中中使用字符串函數(shù)時使用字符串函數(shù)時,在程序開頭用在程序開頭用#include 程序設(shè)計(jì)基礎(chǔ)2. strcat函數(shù)函數(shù)-字符串連接函數(shù)字符串連接函數(shù) char str130=”People”; 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 00000
11、str1要足夠大要足夠大程序設(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 str1
13、10,str2=”China”; str1=”China”; 錯誤錯誤 str1=str2; 錯誤錯誤程序設(shè)計(jì)基礎(chǔ)3. strcpy和和strncpy函數(shù)函數(shù)-字符串復(fù)制字符串復(fù)制 可以用可以用strncpy函數(shù)將字符串函數(shù)將字符串2中前面中前面n個字符復(fù)制到字符數(shù)組個字符復(fù)制到字符數(shù)組1中去中去 strncpy(str1,str2,2);u作用是將作用是將str2中最前面中最前面2個字符復(fù)制到個字符復(fù)制到str1中,取代中,取代str1中原有的最前面中原有的最前面2個字符個字符u復(fù)制的字符個數(shù)復(fù)制的字符個數(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ī)則是:將兩個字符串自左字符串比較的規(guī)則是:將兩個字符串自左至右逐個字符相比,直到出現(xiàn)不同的字符至右逐個字符相比,直到出現(xiàn)不同的字符或遇到或遇到0為止為止 如全部字符相同,認(rèn)為兩個字符串相等如全部字符相同,認(rèn)為兩個字符串
15、相等 若出現(xiàn)不相同的字符,則以第一對不相同若出現(xiàn)不相同的字符,則以第一對不相同的字符的比較結(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ù)值為一個,則函數(shù)值為一個正整數(shù)正整
16、數(shù)u如果字符串如果字符串1str2) printf(”yes”); 錯誤錯誤if(strcmp(str1,str2)0) printf(”yes”); 正確正確程序設(shè)計(jì)基礎(chǔ)5. strlen函數(shù)函數(shù)-測字符串長度的函數(shù)測字符串長度的函數(shù) 其一般形式為其一般形式為: strlen (字符數(shù)組字符數(shù)組) 它是測試字符串長度的函數(shù)它是測試字符串長度的函數(shù) 函數(shù)的值為字符串中的實(shí)際長度函數(shù)的值為字符串中的實(shí)際長度程序設(shè)計(jì)基礎(chǔ)5. strlen函數(shù)函數(shù)-測字符串長度的函數(shù)測字符串長度的函數(shù) char str10=”China”; printf(”%d”,strlen(str); 輸出結(jié)果是輸出結(jié)果是5
17、也可以直接測試字符串常量的長度也可以直接測試字符串常量的長度 strlen(”China”);程序設(shè)計(jì)基礎(chǔ)6. strlwr函數(shù)函數(shù)-轉(zhuǎn)換為小寫的函數(shù)轉(zhuǎn)換為小寫的函數(shù) 其一般形式為其一般形式為 strlwr (字符串字符串) 函數(shù)的作用是將字符串中大寫字母換成函數(shù)的作用是將字符串中大寫字母換成小寫字母小寫字母程序設(shè)計(jì)基礎(chǔ)7. strupr函數(shù)函數(shù)-轉(zhuǎn)換為大寫的函數(shù)轉(zhuǎn)換為大寫的函數(shù) 其一般形式為其一般形式為 strupr (字符串字符串) 函數(shù)的作用是將字符串中小寫字母換成函數(shù)的作用是將字符串中小寫字母換成大寫字母大寫字母程序設(shè)計(jì)基礎(chǔ) 例例4 輸入一行字符,統(tǒng)計(jì)其中有多少個輸入一行字符,統(tǒng)計(jì)其中
18、有多少個單詞,單詞之間用空格分隔開。單詞,單詞之間用空格分隔開。 解題思路:問題的關(guān)鍵是怎樣確定解題思路:問題的關(guān)鍵是怎樣確定“出出現(xiàn)一個新單詞了現(xiàn)一個新單詞了”u 從第從第1個字符開始逐個字符進(jìn)行檢查,判斷個字符開始逐個字符進(jìn)行檢查,判斷此字符是否是新單詞的開頭,如果是,就此字符是否是新單詞的開頭,如果是,就使變量使變量num的值加的值加1,最后得到的,最后得到的num的的值就是單詞總數(shù)值就是單詞總數(shù)程序設(shè)計(jì)基礎(chǔ)u判斷是否出現(xiàn)新單詞,可以由是否有空格出判斷是否出現(xiàn)新單詞,可以由是否有空格出現(xiàn)來決定現(xiàn)來決定(連續(xù)的若干個空格作為出現(xiàn)一次連續(xù)的若干個空格作為出現(xiàn)一次空格;一行開頭的空格不統(tǒng)計(jì)在內(nèi)
19、空格;一行開頭的空格不統(tǒng)計(jì)在內(nèi))u如果測出某一個字符為非空格,而它的前面如果測出某一個字符為非空格,而它的前面的字符是空格,則表示的字符是空格,則表示“新的單詞開始了新的單詞開始了”,此時使,此時使num累加累加1u如果當(dāng)前字符為非空格而其前面的字符也是如果當(dāng)前字符為非空格而其前面的字符也是非空格,則非空格,則num不應(yīng)再累加不應(yīng)再累加1程序設(shè)計(jì)基礎(chǔ)u用變量用變量word作為判別當(dāng)前是否開始了一個作為判別當(dāng)前是否開始了一個新單詞的標(biāo)志,若新單詞的標(biāo)志,若word=0表示未出現(xiàn)新表示未出現(xiàn)新單詞,如出現(xiàn)了新單詞,就把單詞,如出現(xiàn)了新單詞,就把word置成置成1u前面一個字符是否空格可以從前面一個
20、字符是否空格可以從word的值看的值看出來,若出來,若word等于等于0,則表示前一個字符,則表示前一個字符是空格;如果是空格;如果word等于等于1,意味著前一個,意味著前一個字符為非空格字符為非空格程序設(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新單詞開始否新單詞開始否 是是 否否 是是 否否 否否 是是 否否 是是 否否 否否 否否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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 價值引領(lǐng)對民營企業(yè)內(nèi)部管理和創(chuàng)新的影響
- 數(shù)字化時代下大學(xué)生對體育文化元素的關(guān)注趨勢
- 提升求職就業(yè)能力的策略及實(shí)施路徑
- 高職院校創(chuàng)新創(chuàng)業(yè)人才培養(yǎng)的策略與模式
- 房企存量資產(chǎn)盤活的路徑與實(shí)踐研究
- 建筑企業(yè)內(nèi)部控制實(shí)施的挑戰(zhàn)與應(yīng)對策略
- 鄉(xiāng)村教育與人才振興的效能評估方法
- 信息網(wǎng)路管理制度
- 信訪場所管理制度
- 公司6s+管理制度
- 蘭州大學(xué)《中國經(jīng)濟(jì)史》2023-2024學(xué)年第二學(xué)期期末試卷
- 青島版(2024)小學(xué)科學(xué)一年級下冊《木頭》說課稿及反思
- 課件:《馬克思主義基本原理概論》(23版):第七章 共產(chǎn)主義崇高理想及其最終實(shí)現(xiàn)
- 網(wǎng)絡(luò)空間中的群體行為分析-深度研究
- 間歇性胃管插管護(hù)理
- 統(tǒng)計(jì)業(yè)務(wù)培訓(xùn)
- 海康智慧工地解決方案
- 小學(xué)科學(xué)新教科版一年級下冊全冊教案(共13課)(2025春詳細(xì)版)
- 自發(fā)性氣胸PBL護(hù)理教學(xué)查房
- 2025年金華國企義烏市建投集團(tuán)招聘筆試參考題庫含答案解析
評論
0/150
提交評論