字符數(shù)組與字符串_第1頁
字符數(shù)組與字符串_第2頁
字符數(shù)組與字符串_第3頁
字符數(shù)組與字符串_第4頁
字符數(shù)組與字符串_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、字符數(shù)組與字符串字符數(shù)組 用于存放字符型數(shù)據(jù)的數(shù)組稱為字符數(shù)組。一個數(shù)組元素只能存放一個字符。說明字符數(shù)組的一般形式如下: char 數(shù)組名常量表達(dá)式; 例如:char c14; 字符數(shù)組的定義 字符數(shù)組的初始化逐個初始化數(shù)組與其它數(shù)組一樣:例如:char c18=G, o, o, d, , b, y,e, !; 字符數(shù)組元素經(jīng)上述賦值語句賦值后,在計算機(jī)內(nèi)存中的存放形式如圖所示 當(dāng)初始化值的個數(shù)少于元素個數(shù)時,從第一個數(shù)組元素開始賦值,剩余元素為空。 字符數(shù)組的初始化 用字符串初始化 字符數(shù)組中可以存放若干個字符,也可以存放字符串。兩者的區(qū)別是字符串有一個結(jié)束符(0)。 反過來說,在一維數(shù)組

2、中存放著帶有結(jié)束符的若干字符稱為字符串。 例如:char c28=G, o, o, d, , b, y,e, ,0;即在數(shù)組c2中存放著一個字符串“Goodbye”。 用一個字符串初始化一個數(shù)組時,可以寫成下列形式: char c28=Goodbye; 使用此格式要注意字符串的長度應(yīng)小于字符數(shù)組的長度或者等于數(shù)組的大小減1。 字符數(shù)組的初始化 初始化時省略長度 字符是由單引號括起來,字符串是由雙引號。字符只能是單個字符,字符串是可以是多個字符。可以把一個字符賦值給一個字符串變量,不能把字符串賦值給一個字符變量1.字符占一個字節(jié),字符串占用的字節(jié)數(shù)等于字符個數(shù)加1。例如:字符a占一個字節(jié),字符串

3、a占兩個字節(jié)。字符與字符串的區(qū)別:逐個字符輸入輸出。用格式符“c”輸入或輸出一個字符。將整個字符串一次輸入或輸出。用格式符“s” ,輸入或輸出字符串(string)。字符數(shù)組的輸入輸出 從鍵盤輸入一個字符數(shù)組可以使用scanf語句或gets語句。1)scanf語句格式:scanf(%s,字符串名稱);說明:這里的字符串名稱之前不加&。例如,scanf(%s,&s1)是錯誤的。系統(tǒng)會自動在輸入的字符串后添加“0”標(biāo)志,因此輸入時,僅輸入字符串內(nèi)容即可。輸入多個字符串時,以空格分格。 例如,scanf(%s%s%s,s1,s2,s3);若輸入Let it go,則s1,s2,s3分

4、別取了三個單詞。 例如,scanf(%s,s1);若輸入Let it go,則s1只取得第一個單詞Let。1輸入 從鍵盤輸入一個字符數(shù)組可以使用scanf語句或gets語句。1)gets語句格式:gets(字符串名稱);說明:使用gets只能輸入一個字符串,例如,gets(s1,s2)是錯誤的。使用gets,是從光標(biāo)開始的地方,讀到換行符(按回車鍵的時候),也就是說讀入一整行,而使用scanf是從光標(biāo)開始的地方讀到空格。例如,scanf(%s,s1); gets(s2); 對于相同的輸入Hello World!。s1獲取的結(jié)果是Hello,而s2獲取的結(jié)果是Hello World!1輸入 向屏

5、幕輸出一個字符串可以使用printf語句或puts語句。1)printf語句格式:printf(%s,字符串名稱);說明:使用%s格式輸出時,printf的輸出項只能是字符串(字符數(shù)組)名稱,而不能是數(shù)組元素,例如:printf(%s,a5);是錯誤的。輸出字符串不包含字符串的結(jié)束標(biāo)志0。1輸出 1)字符串連接函數(shù) strcat( )調(diào)用格式:strcat(str1,str2);功能:把str2中的字符串連接到str1字符串的后面,結(jié)果放在str1數(shù)組中,函數(shù)值是str1的值。例如:char str121=beijing and ;char str2 =shanghai;printf(%s,s

6、trcat(str1,str2); 字符串函數(shù)必須足夠大2)字符串復(fù)制函數(shù) strcpy( )調(diào)用格式:strcpy(str1,str2);功能:將str2中的字符串復(fù)制到str1數(shù)組中。例如:char s110,s2 = Beijing;strcpy(s1,s2);或:strcpy(s1,Beijing); 字符串函數(shù)s1的結(jié)果S1必須足夠大3)字符串比較函數(shù) strcmp( )調(diào)用格式:strcmp(str1,str2); 字符串函數(shù)str1str2str1str2str1str2#include#includeint main( ) char s1 = aBC,s2 = abc; if

7、(strcmp(s1,s2)=0) printf(s1=s2); else if (strcmp(s1,s2)0) printf(s1s2); else printf(s1s2); return 0;4)求字符串長度函數(shù) strlen( )調(diào)用格式:strlen(str);功能:測試字符串長度。函數(shù)值就是str中字符的個數(shù)。例如:char str10= China;printf(%d,strlen(str);或printf(%d,strlen(China); 字符串函數(shù)思考:字符串China和str數(shù)組在內(nèi)存中各占幾個字節(jié)?【例1】gets()一個字符串,然后使用printf()將其輸出,輸出

8、的每個字符占3位顯示。#include#includeint main( ) char st100; gets(st); for(int i=0;i=strlen(st);i+) printf(%3c,sti); return 0;5)大寫字符轉(zhuǎn)小寫字母函數(shù) strlwr( )調(diào)用格式:strlwr(str);功能:將str字符串中的大寫字母轉(zhuǎn)換成小寫字母。例如:char str =MICRO SOFT WORD ;strlwr(str);puts(str);例如:printf(%s,strlwr(AbCd); 字符串函數(shù)6)小寫字符轉(zhuǎn)大寫字母函數(shù) strupr( )調(diào)用格式:strupr(s

9、tr);功能:將str字符串中的小寫字母轉(zhuǎn)換成大寫字母。例如:char ch10=pascal;printf(%s,strupr(ch); 字符串函數(shù)7)其它常用函數(shù) 字符串函數(shù)函數(shù)用法函數(shù)功能strncat(str1,str2,n)把str2字符串前n個字符連接到str1字符串的后面,結(jié)果放在str1數(shù)組中,函數(shù)值是str1的值strncpy(str1,str2,n)把str2字符串前n個字符復(fù)制到str1字符串,并返回str1字符串。strncmp(str1,str2,n) 將字符串str1和字符串str2的前n個字符進(jìn)行比較【例2】輸入一行字符,統(tǒng)計出其中數(shù)字字符的個數(shù) 。輸入:Peking University

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論