第6章字符數(shù)組_第1頁
第6章字符數(shù)組_第2頁
第6章字符數(shù)組_第3頁
第6章字符數(shù)組_第4頁
第6章字符數(shù)組_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 本次課的主要內容:本次課的主要內容:1 1、字符數(shù)組的定義、字符數(shù)組的定義2 2、字符數(shù)組的初始化、字符數(shù)組的初始化3 3、字符數(shù)組與字符串常量之間的關系、字符數(shù)組與字符串常量之間的關系4 4、字符數(shù)組(字符串常量)的輸入輸出、字符數(shù)組(字符串常量)的輸入輸出5 5、字符串處理函數(shù)、字符串處理函數(shù) 6.3 字符數(shù)組和字符串一、字符數(shù)組定義 字符數(shù)組的定義方法與前面講過的類似 二、字符數(shù)組的初始化例 char c10, ch34; 例例 char ch5=H,e,l,l,o;ch0Hello逐個字符賦值逐個字符賦值ch1ch2ch3ch41、逐個字符賦值、逐個字符賦值在內存中情況示意在內存中情

2、況示意字符是以字符是以ascll碼存的碼存的 例 char ch5=B,o,y;ch0Boy00初值個數(shù)小于數(shù)組長度初值個數(shù)小于數(shù)組長度ch1ch2ch3ch4int a5=1,2,3;結果:結果:a0=1 ,a1=2, a2=3 ,a3=0, a4=0對照對照 例例 char ch =a,b,c,d;ch0abcd省略數(shù)組長度省略數(shù)組長度ch1ch2ch3int a =1,2,3,4;結果:結果:a0=1 ,a1=2, a2=3 ,a3=4對照對照2、用字符串常量、用字符串常量 例例 char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;用字

3、符串常量用字符串常量ch0Helloch1ch2ch3ch40ch5系統(tǒng)自動加的系統(tǒng)自動加的字符串結束字符串結束標記標記”0” 例例 char ch5=“Boy”;ch0Boy00用字符串常量用字符串常量ch1ch2ch3ch4char ch6=“Hello”; char ch6=“Hello”; char ch= h,e,l,l,o,0;char ch=“Hello”;數(shù)組中有數(shù)組中有6個元素。個元素。char ch=h,e,l,l,o;數(shù)組中有數(shù)組中有5個元素。個元素。ch0Helloch1ch2ch3ch40ch5示意圖 例例 char f7=A,p,p,l,e, O,r,a,n,g,e

4、, G,r,a,p,e;也可以這樣:也可以這樣:char fruit7=“Apple”, “Orange”, “Grape”;二維字符數(shù)組初始化二維字符數(shù)組初始化f0f1f2Apple00Orange0Grape00 三、字符串以及結束標記1、字符串及其結束標志、字符串及其結束標志字符串:雙引號擴起來的一串字符。字符串:雙引號擴起來的一串字符。結束標志:結束標志: 0 。2、無字符串變量,用字符數(shù)組處理字符串、無字符串變量,用字符數(shù)組處理字符串 例例 “hello”共共5個字符,在內存占個字符,在內存占6個字節(jié)個字節(jié) 字符串長度字符串長度5 h e l l o 0104 101 108 108

5、 111 0內存存放字符ASCII碼6.3.5、一維字符數(shù)組(字符串、一維字符數(shù)組(字符串)的輸入輸?shù)妮斎胼敵龀?使用函數(shù)使用函數(shù) scanf 與與 printf 1、逐個字符輸入與輸出: 格式符 為: %c例 用%c void main() char str5; int i; for(i=0;i5;i+) scanf(%c, &stri); for(i=0;i5;i+) printf(%c, stri);運行結果:輸入:abcde輸出:abcde2、整個字符串的輸入與輸出 : 格式符為: %s例 用%s void main() char str15; scanf(%s, str);

6、printf(%s, str);運行結果: 輸入:China 輸出:China 用字符數(shù)組名用字符數(shù)組名, 不要加不要加&輸入串長度輸入串長度數(shù)組長度數(shù)組長度遇空格或回車結束遇空格或回車結束 自動加一個自動加一個0#include void main( ) char a5=H,e,l,l,o;printf(%s,a);例 void main( ) char a =“Hello”; printf(“%s”,a); 結果:Hello#-=* H e l l o02314結果:Hello用“%s”輸出時,遇0結束例例例 字符串輸入舉例 H o w 0 - a r e 0 y o u ? 0

7、#include void main() char a15,b5,c5; scanf(%s%s%s,a,b,c); printf(a=%snb=%snc=%sn,a,b,c); scanf(%s,a); printf(a=%sn,a);運行情況:輸入:How are you?輸出:a=How b=are c=you?輸入:How are you?輸出:a=Howscanf中%s輸入時,遇空格或回車結束s-input.c六、常用的字符串處理函數(shù)六、常用的字符串處理函數(shù) 包含在頭文件包含在頭文件 stdio.h1、字符串輸出函數(shù)字符串輸出函數(shù) puts格式:格式:puts(字符數(shù)組字符數(shù)組名名)功

8、能:向顯示器輸出字符串(輸出完,換行)功能:向顯示器輸出字符串(輸出完,換行)說明:字符數(shù)組必須以說明:字符數(shù)組必須以0結束結束例例 #include void main( ) char str=“How are you?”; puts(str); /* printf(“%s”,str) ; */ 運行結果:運行結果: 輸出輸出: How are you ? 2、字符串輸入函數(shù)、字符串輸入函數(shù) gets格式:格式:gets(字符數(shù)組字符數(shù)組名名)功能:從鍵盤輸入一以功能:從鍵盤輸入一以回車結束回車結束的字符串放入的字符串放入字符數(shù)組中,并自動加字符數(shù)組中,并自動加一個一個0說明:輸入串長度應小

9、于字符數(shù)組長度說明:輸入串長度應小于字符數(shù)組長度例例 #include void main( ) char str30; printf(“Input a string:”); gets(str); /* scanf(“%s”,str); */ puts(str); 輸入輸入: How are you?輸出輸出: How are you ? 字符串連接函數(shù)字符串連接函數(shù) strcat字符串拷貝函數(shù)字符串拷貝函數(shù)strcpy字符串比較函數(shù)字符串比較函數(shù) strcmp字符串長度函數(shù)字符串長度函數(shù) strlen常用的字符串處理函數(shù)常用的字符串處理函數(shù) 包含在頭文件包含在頭文件 string.h3、字符

10、串連接函數(shù)、字符串連接函數(shù) strcat格式:格式:strcat(字符數(shù)組字符數(shù)組1,字符數(shù)組字符數(shù)組2)功能:把功能:把 字符數(shù)組字符數(shù)組2 連到連到 字符數(shù)組字符數(shù)組1 后面后面 說明:說明:字符數(shù)組字符數(shù)組1必須足夠大必須足夠大 連接前連接前,兩串均以兩串均以0結束結束;連接后連接后,串串1的的0取取 消消, 新串最后加新串最后加0例例 #include void main() char a20 = Turbo; char b= C+, strcat(a , c); printf(%sn, a); 輸出結果:輸出結果:Turbo C+例 char str120,str220; str1=

11、“Hello!”; () str2=str1; ()4、字符串拷貝函數(shù)、字符串拷貝函數(shù)strcpy格式:格式:strcpy(字符數(shù)組字符數(shù)組1,字符串字符串2)功能:將字符串功能:將字符串2,拷貝到字符數(shù)組,拷貝到字符數(shù)組1中去中去說明:說明:字符數(shù)組字符數(shù)組1必須足夠大必須足夠大 拷貝時拷貝時0一同拷貝一同拷貝 不能使用賦值語句為一個字符數(shù)組賦值不能使用賦值語句為一個字符數(shù)組賦值例: #include void main() char a25; char b= “ C+, char c = Turbo; strcpy(a , c); strcat(a , b); printf(%sn, a)

12、; 輸出結果: Turbo C+ 5、字符串比較函數(shù)、字符串比較函數(shù) strcmp格式:格式:strcmp(字符串字符串1,字符串字符串2)功能:比較兩個字符串功能:比較兩個字符串比較規(guī)則:對兩串從左向右逐個字符比較(比較規(guī)則:對兩串從左向右逐個字符比較(ASCII碼)碼) 直到遇到不同字符或直到遇到不同字符或0為止為止返值:返回返值:返回int型整數(shù),型整數(shù), a. 若字符串若字符串1 字符串字符串2, 返回返回正整數(shù)正整數(shù) c. 若字符串若字符串1= 字符串字符串2, 返回返回零零說明:說明:字符串比較不能用字符串比較不能用“= =”,必須用必須用 strcmp例如:比較:例如:比較: H

13、ello! 與與 Hell0! H e l l o ! H e l I 0 ! 例 #include #include void main() char str1 = “Hell0!”, str2 =“Hello!”; if(strcmp(str1, str2)0) printf( “Hell0! Hello!”); else if(strcmp(str1, str2)=0) printf(“Hell0!= = Hello!”) ; else printf(“Hell0! Hello!”); 輸出結果:輸出結果:Hell0!Hello!6、字符串長度函數(shù)、字符串長度函數(shù) strlen 格式:格

14、式:strlen(字符數(shù)組字符數(shù)組)功能:計算字符串長度功能:計算字符串長度返值:返回字符串實際長度,返值:返回字符串實際長度,不包括不包括0在內在內例:例:#include void main()char str1 = ”Hello!, str2 = ”How are you?”; int len1,len2 , len3; len1=strlen(str1) ; len2=strlen(str2); printf(“l(fā)en1=%d len2=%d”,len1,len2); 結果:結果:len1=6 len2=12應用舉例應用舉例例例 6.8、 輸入一行字符,統(tǒng)計其中有多少個單詞,單詞之間輸

15、入一行字符,統(tǒng)計其中有多少個單詞,單詞之間用空格間隔用空格間隔輸入一字符串給字符數(shù)組輸入一字符串給字符數(shù)組 string i=0 , num=0 , word=0當當 ( ( c=stringi ) !=0 )c= =空格空格真真真真假假假word=0word=1num=num+1i=i+1輸出:輸出:numword=0例如:有下面一行字符例如:有下面一行字符,由一個空格間隔。由一個空格間隔。 I am a boy. 再比如:有多個空格間再比如:有多個空格間隔隔 I am a boy.#include void main() char string81; int i , num=0 , wor

16、d=0; char c; gets(string); /輸入一行字符串輸入一行字符串 for(i=0;(c=stringi)!=0;i+) if(c= ) word=0; else if (word=0) word=1; num+; printf(There are %d words in the linen, num);例例 6.9、 有三個字符串,找出其中最大者有三個字符串,找出其中最大者定義三個一維字符數(shù)組定義三個一維字符數(shù)組 str120,str220,str320 即即 定義部分:定義部分: char str120 , str220 , str320 , str 20 ; 輸入部分:

17、輸入部分: scanf(“%s%s%s”,str1,str2,str3);比較部分:比較部分: if( strcmp(str1,str2)0) strcpy(str, str1); else strcpy(str,str2); if( strcmp(str3 , str) 0) strcpy(str,str3);輸出部分:輸出部分: printf(“n the largest string is :%sn” ,str); 三個字符串,找出其中最大者三個字符串,找出其中最大者 H o w 0 H e l l o 0 H i g h 0 str0str1str2#include #include

18、void main() char string20 , str320; int i; for(i=0;i0)strcpy(string,str0); else strcpy(string,str1); if(strcmp(str2,string)0)strcpy(string,str2); printf(nThe largest string is:n%sn,string);定義一個兩維字符數(shù)組定義一個兩維字符數(shù)組str320即即 3行行20列。每一行可以容納列。每一行可以容納20個字符。如下圖:個字符。如下圖:小結字符數(shù)組字符數(shù)組的定義的定義 初始化(用字符串常量初始化方法)初始化(用字符串

19、常量初始化方法) 元素的引用元素的引用 逐個輸入輸出:逐個輸入輸出:%c getchar, putchar 一次輸入輸出一次輸入輸出: %s gets, puts字符串處理函數(shù)字符串處理函數(shù): 頭文件:頭文件:#include 函數(shù):函數(shù):strcat, strcpy, strcmp, strlen作業(yè)習題13、15在有序數(shù)組中插入一個數(shù) 如: 1,4,6,9,13,16,19,28,40,100 插入插入38后為:后為: 1,4,6,9,13,16,19,28, 38 ,40,100實驗 (在有序數(shù)組中插入一個數(shù))void main()int a11=1,4,6,9,13,16,19,28,

溫馨提示

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

評論

0/150

提交評論