《C語言基礎(chǔ) 模塊4 part2.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《C語言基礎(chǔ) 模塊4 part2.ppt(29頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、數(shù)組 二 模塊4 共34頁第2頁 1字符與字符串2字符數(shù)組3字符串處理函數(shù)4二維字符數(shù)組5應(yīng)用實(shí)例 字符數(shù)據(jù)處理 共34頁第3頁 符號常量 以指定符號代表其后的 一串字符 格式 define標(biāo)識(shí)符常量 1字符與字符串 一 字符型數(shù)據(jù) 可以是任意類型常量 字符常量 以 括起來的單個(gè)字符 開頭的字符序列 例 a A n 表示換行 r 表示回車 字符串常量 用雙引號括起來的字符序列 例 Ch 123 等 長度不限 末尾加 0 字符變量 存放字符常量的變量 用char說明 共34頁第4頁 1字符與字符串 續(xù) 二 字符串 串長 字符串中所包含的字符數(shù) 串結(jié)束標(biāo)記 字符 0 稱為串結(jié)束標(biāo)記 C中的串以 0
2、 結(jié)束 字符串在數(shù)組中的存儲(chǔ)格式 字符串可以存在一個(gè)一維數(shù)組中 字符串中的一個(gè)字符占用字符數(shù)組中一個(gè)字節(jié) 具有數(shù)組特性 字符串實(shí)際占有單元的數(shù)量等于字符串長度 1 例如 要定義一個(gè)存放字符串 CHINA 的字符數(shù)組c 應(yīng)定義為 charc 6 數(shù)組c在內(nèi)存中實(shí)際存放情況為 共34頁第5頁 串長 5 三 字符數(shù)據(jù)的輸入輸出 庫函數(shù) getchar putchar ch 從鍵盤上讀一個(gè)字符 1字符與字符串 續(xù) 使用getchar 時(shí) 可以輸入任何字符 允許用戶根據(jù)自己的要求進(jìn)行控制與處理 串尾 0要自己編程加入 其中 ENTER 接受為 r 回車 格式化輸入輸出函數(shù) scanf printf c
3、共34頁第6頁 格式 數(shù)據(jù)類型數(shù)組名 維數(shù)說明 例 chara 4 b 10 charc 3 4 表示a數(shù)組可以存放4個(gè)字符 c數(shù)組可以存放12個(gè)字符 例 c 3 4 可存放三個(gè)字符串 每個(gè)字符串最多存放4個(gè)字符 一維字符型數(shù)組作為一個(gè)字符串變量使用 二維字符型數(shù)組相當(dāng)于一個(gè)字符串?dāng)?shù)組 每行存放一個(gè)字符串 2字符數(shù)組 續(xù) 一 一維字符數(shù)組的定義 二 字符數(shù)組的用途 共34頁第7頁 8 2字符數(shù)組 三 一維字符數(shù)組的初始化 用字符串對字符數(shù)組初始化 如 charch 6 CHINA charch 6 CHINA 省略 charch CHINA 省略長度值 字符數(shù)組初始化 用單個(gè)字符對字符數(shù)組初始
4、化 如 charch 6 C H I N A 0 2字符數(shù)組 續(xù) 共34頁第8頁 2字符數(shù)組 續(xù) 四 一維字符數(shù)組的引用 如 chara 10 CHINA2000 b 3 123 printf c n a 3 printf s n a 對于字符數(shù)組 不僅可以引用它的數(shù)組元素 也可以引用整個(gè)數(shù)組 共34頁第9頁 2字符數(shù)組 續(xù) staticchara 3 for i 0 i 3 i scanf c 輸入數(shù)據(jù)順序 dos輸出數(shù)據(jù)順序 dos 四 字符數(shù)組的輸入與輸出 單字符輸入輸出 用格式符 c控制 共34頁第10頁 staticchara 7 scanf s a 2字符數(shù)組 續(xù) 字符數(shù)組名指明數(shù)
5、組首地址 字符串輸入輸出 用格式符 s控制 0 不輸出 只能輸入不包括空格 t和 n的字符串自動(dòng)在串尾加 0 printf s n a 共34頁第11頁 五 字符串在數(shù)組中的存儲(chǔ)格式 使用字符 0 作為字符串的結(jié)束標(biāo)記 就使得C語言對字符串的長度沒有具體的限制 但字符串的最大長度不能超過存儲(chǔ)它的字符數(shù)組的長度 否則會(huì)造成數(shù)組越界錯(cuò)誤 2字符數(shù)組 完 0 是在字符串存入字符數(shù)組是由系統(tǒng)自動(dòng)添加的 并不是字符串本身的一部分 在計(jì)算串長的時(shí)候并不包括 0 共34頁第12頁 3字符串處理函數(shù) 一 字符串輸入輸出函數(shù) gets 字符數(shù)組名 由終端輸入字符串到字符數(shù)組 以換行結(jié)束返回字符數(shù)組的首地址 pu
6、ts 字符數(shù)組名 將以 0結(jié)束的字符串輸出到終端返回的函數(shù)值是字符數(shù)組的首地址 共34頁第13頁 3字符串處理函數(shù) 續(xù) 格式 strlen x 功能 返回x字符串中字符的個(gè)數(shù) 不包括字符串結(jié)束符 x是字符串首地址 其形式可以是字符數(shù)組或字符指針 也可以是字符常量 二 求字符串長度的函數(shù) 共34頁第14頁 3字符串處理函數(shù) 續(xù) 格式 strcat 字符數(shù)組1 字符數(shù)組2 功能 連接兩個(gè)字符數(shù)組中的字符串 將串2接在串1后 結(jié)果存放在字符數(shù)組1中 返回的函數(shù)值是字符數(shù)組1的首地址 字符數(shù)組1的長度不可缺省 足夠大 三 字符串連接函數(shù) 四 字符串復(fù)制函數(shù) 格式 strcpy 字符數(shù)組1 字符數(shù)組2
7、功能 將串2復(fù)制到串1數(shù)組中 共34頁第15頁 程序 includevoidmain charstr1 100 str2 100 inti j printf Enterstring1 gets str1 printf Enterstring2 gets str2 for i 0 str1 i 0 i 確定 0位置 for j 0 str1 i str2 j 0 i j printf Outputstring1 s n str1 例8字符串連接 將串str2連接到串str1之后 根據(jù)字符串中 0的位置進(jìn)行字符串連接 關(guān)鍵 要用str2的第1個(gè)字符覆蓋str1的串結(jié)束標(biāo)記 0 a b c d e
8、f g 0 str2 str1 算法 1 查找str1的串結(jié)束標(biāo)記 02 從str1的 0開始 將str2復(fù)制到str1 3字符串處理函數(shù) 續(xù) 共34頁第16頁 例9字符串復(fù)制 將字符串str1拷貝到串str2中 沒有必要復(fù)制整個(gè)數(shù)組 根據(jù)字符串中 0的位置 只對 0前面的字符進(jìn)行復(fù)制 includevoidmain charstr1 100 str2 100 inti printf Enterstring1 gets str1 輸入字符串str1 for i 0 str2 i str1 i 0 i 復(fù)制 printf Outputstring2 s n str2 a b f g 0 str1
9、 str2 3字符串處理函數(shù) 續(xù) 共34頁第17頁 3字符串處理函數(shù) 續(xù) 五 字符串比較函數(shù) 格式 strcmp 字符數(shù)組1 字符數(shù)組2 功能 比較串1和串2 返回結(jié)果為 0 相等 正數(shù) 串1大 負(fù)數(shù) 串2大 abc 與 abc 相等 abcd 與 abck abcd 小 abc 與 ab abc 大 比較原則 按ASCII碼比較 共34頁第18頁 例10字符串比較 確定字符串大小的基本規(guī)則 按照串中對應(yīng)位置字符的ASCII碼值的大小確定大小 例如 abc abadef 因?yàn)樽址鹀 a include stdio h voidmain charstr1 100 str2 100 inti pr
10、intf Enterstring1 gets str1 printf Enterstring2 gets str2 for i 0 str1 i str2 i 3字符串處理函數(shù) 續(xù) 共34頁第19頁 8 3字符串處理函數(shù) 六 大小寫字母的轉(zhuǎn)換 1格式 strlwr x 功能 把地址為x的字符串中所有大寫字母轉(zhuǎn)換成小寫字母 x可以是字符數(shù)組或字符指針 也可以是字符串常量 調(diào)用形式 strlwr x 2格式 strupr x 功能 把地址為x的字符串中所有小寫字母轉(zhuǎn)換成大寫字母 x可以是字符數(shù)組或字符指針 也可以是字符串常量 調(diào)用形式 strupr x 3字符串處理函數(shù) 完 共34頁第20頁 8
11、2字符數(shù)組 一 二維字符數(shù)組的定義 如 chara 2 5 b 3 7 與二維數(shù)值數(shù)組定義相同 但數(shù)據(jù)類型為char 4二維字符數(shù)組 共34頁第21頁 8 2字符數(shù)組 二 二維字符數(shù)組的初始化 可以在定義的同時(shí)初始化 如 chara 3 8 str1 str2 string3 charb 6 s1 s2 str3 二維字符數(shù)組初始化 4二維字符數(shù)組 續(xù) 二維字符數(shù)組初始化在內(nèi)存的存儲(chǔ) 共34頁第22頁 8 2字符數(shù)組 三 二維字符數(shù)組的引用 如 1 for i 0 i 3 i printf s n a i 2 for i 0 i 3 i printf c n a i i 3 for i 0 i
12、 3 i printf s n 對于二維字符數(shù)組 每行可以看做一個(gè)字符數(shù)組 數(shù)組名a i 可以用a i 引用i行的字符串 也可以用a i j 引用i行j列的字符 4二維字符數(shù)組 完 輸出 1 str1 2 s 3 tr1str2tr2strinf3ring3 共34頁第23頁 include includevoidmain charstring 100 t inti j n gets string n strlen string for i 0 istring j 1 t string j string j string j 1 string j 1 t puts string 4應(yīng)用實(shí)例 例
13、11輸入一行字符 將其中的每個(gè)字符從小到大排列后輸出 共34頁第24頁 例12輸入五個(gè)單詞 請將它們按從小到大的順序排列后輸出 include includevoidmain charstr 5 20 t 20 inti j n printf Enterstring n for i 0 i0 strcpy t str j strcpy str j str j 1 strcpy str j 1 t printf Result n for i 0 i 5 i puts str i 4應(yīng)用實(shí)例 續(xù) 共34頁第25頁 例13任意輸入一個(gè)3位整數(shù) 取其各位數(shù)字的和 再取這個(gè)和被7除的余數(shù) 輸出余數(shù)對應(yīng)的
14、星期 英文單詞 如 輸入123 1 2 3 7 6 則輸出saturday 對3位整數(shù)n 拆分其百 十和個(gè)位的方法 百位 i n 100 十位 j n 10 10 個(gè)位 k n 10 4應(yīng)用實(shí)例 續(xù) 共34頁第26頁 例13 include stdio h main charweek 7 9 Sunday Monday Tuesday Wednesday Thursday Friday Saturday inti j k a n do printf Pleaseinputanumber n scanf d 4應(yīng)用實(shí)例 續(xù) 共34頁第27頁 include stdio h include str
15、ing h voidmain charstr 80 c inti j n printf Enterstring gets str n strlen str for i 0 j n 1 i j i j c str i str i str j str j c printf Result puts str 4應(yīng)用實(shí)例 例14輸入一行字符串 將其反序后再輸出 共34頁第28頁 include stdio h include string h voidmain charstr1 80 str2 80 str 80 inti j n printf Enterstring1 gets str1 printf
16、 Enterstring2 gets str2 n 0 for i 0 j 0 str1 i 0 4應(yīng)用實(shí)例 例15輸入兩個(gè)已經(jīng)按從小到大順序排列好的字符串 編寫一個(gè)合并兩個(gè)字符串的函數(shù) 使合并后的字符串 仍然是從小到大排列 共34頁第29頁 include includevoidmain intlength charline 100 gets line length 0 while line length 0 length printf Stringlength d n length 例16求字符串的長度根據(jù)字符串中 0的位置來計(jì)算字符串長度 若 數(shù)組中第i個(gè)元素為 0 則 串長 i length 7 4應(yīng)用實(shí)例