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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、trcat(str1,str2); 字符串函數必須足夠大2)字符串復制函數 strcpy( )調用格式:strcpy(str1,str2);功能:將str2中的字符串復制到str1數組中。例如:char s110,s2 = Beijing;strcpy(s1,s2);或:strcpy(s1,Beijing); 字符串函數s1的結果S1必須足夠大3)字符串比較函數 strcmp( )調用格式:strcmp(str1,str2); 字符串函數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)求字符串長度函數 strlen( )調用格式:strlen(str);功能:測試字符串長度。函數值就是str中字符的個數。例如:char str10= China;printf(%d,strlen(str);或printf(%d,strlen(China); 字符串函數思考:字符串China和str數組在內存中各占幾個字節(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)大寫字符轉小寫字母函數 strlwr( )調用格式:strlwr(str);功能:將str字符串中的大寫字母轉換成小寫字母。例如:char str =MICRO SOFT WORD ;strlwr(str);puts(str);例如:printf(%s,strlwr(AbCd); 字符串函數6)小寫字符轉大寫字母函數 strupr( )調用格式:strupr(s

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論