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

下載本文檔

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

文檔簡介

1、CONTENTS 目 錄提出問題 引入新課自主學(xué)習(xí) 明確考點案例分析 交流提升仿真演練 體驗探索提出問題 引入新課PART 011、有以下程序main() char p=a, b, c, q=abc; printf(%d %dn, sizeof(p),sizeof(q);程序運行后的輸出結(jié)果是( ) A)4 4 B)3 3 C)3 4 D)4 32、用于輸入輸出的字符串函數(shù),在使用前應(yīng)包含頭文件 , 使用其它字符串函數(shù)則應(yīng)包含頭文件 。提出問題 引入新課自主學(xué)習(xí) 明確考點PART 02對字符串的整體操作, C語言沒有提供相應(yīng)的運算符,但是提供了豐富的字符串處理函數(shù),大致可分為字符串的輸入、輸出

2、、合并、修改、比較、轉(zhuǎn)換、復(fù)制、搜索幾類。考點一:字符串處理函數(shù)的格式及使用(1)字符串輸出函數(shù) puts格式:puts (字符數(shù)組名) 功能:把字符數(shù)組中的字符串輸出到顯示器, 即在屏幕上顯示該字符串。【例1】#includestdio.hmain() char c=how are you?nfine ,thank you!;puts(c);【解析】從程序中可以看出puts函數(shù)中可以使用轉(zhuǎn)義字符, 因此輸出結(jié)果成為兩行。程序運行結(jié)果如下:how are you?fine ,thank you!考點一:字符串處理函數(shù)的格式及使用puts函數(shù)在輸出時將字符串結(jié)束標(biāo)志0轉(zhuǎn)換成n即輸完字符串后換行,

3、它完全可以由printf函數(shù)取代。 當(dāng)需要按一定格式輸出時,通常使用printf函數(shù)。(2)字符串輸入函數(shù)gets 格式: gets (字符數(shù)組名) 功能:從標(biāo)準(zhǔn)輸入設(shè)備鍵盤上輸入一個字符串。 本函數(shù)得到一個函數(shù)值,即為該字符數(shù)組的首地址。一般利用gets函數(shù)的目的是向字符數(shù)組輸入一個字符串考點一:字符串處理函數(shù)的格式及使用【例2】#includestdio.hmain() char st15; printf(input string:n); gets(st); puts(st); 【解析:】可以看出當(dāng)輸入的字符串中含有空格時,輸出仍為全部字符串。說明gets函數(shù)并不以空格作為字符串輸入結(jié)束的

4、標(biāo)志, 而只以回車作為輸入結(jié)束。這是與scanf函數(shù)不同的。注意:用puts函數(shù)和gets函數(shù)只能輸出或輸入一個字符串,不能寫成puts(str1,str2),或者gets(str1,str2) /*錯誤*/(3)字符串連接函數(shù)strcat 格式: strcat (字符數(shù)組名1,字符數(shù)組名2) 功能:把字符數(shù)組2中的字符串連接到字符數(shù)組1 中字符串的后面,并刪去字符串1后的串標(biāo)志0。本函數(shù)返回值是字符數(shù)組1的首地址。考點一:字符串處理函數(shù)的格式及使用【例3】#includestring.h main() static char st130=My name is ; char st210; pr

5、intf(input your name:n); gets(st2); strcat(st1,st2); puts(st1); 運行結(jié)果運行結(jié)果: :input your name:input your name:Jim GreenJim GreenMy name is Jim GreenMy name is Jim Green【解析:】本程序把初始化賦值的字符數(shù)組與動態(tài)賦值的字符串連接起來。 要說明的是:字符數(shù)組1應(yīng)定義足夠的長度,否則不能全部裝入被連接的字符串。連接前兩個字符串的后面都有一個0,連接時將字符串1后面的0取消,只在新串后面保留一個0。(4)字符串拷貝函數(shù)strcpy 格式:

6、strcpy (字符數(shù)組名1,字符數(shù)組名2) 功能:把字符數(shù)組2中的字符串拷貝到字符數(shù)組1中。串結(jié)束標(biāo)志0也一同拷貝。字符數(shù)名2, 也可以是一個字符串常量。這時相當(dāng)于把一個字符串賦予一個字符數(shù)組。考點一:字符串處理函數(shù)的格式及使用【例4】#includestring.hmain() static char st115,st2=C Language; strcpy(st1,st2);puts(st1);printf(n);運行結(jié)果運行結(jié)果: :C Language【說明:】本函數(shù)要求字符數(shù)組1應(yīng)有足夠的長度,否則不能全部裝入所拷貝的字符串。考點一:字符串處理函數(shù)的格式及使用(5)字符串比較函數(shù)s

7、trcmp 格式: strcmp(字符數(shù)組名1,字符數(shù)組名2)功能:按照ASCII碼順序比較兩個數(shù)組中的字符串,并由函數(shù)返回值返回比較結(jié)果。 字符串1字符串2,返回值0;字符串1字符串2,返回值0;字符串1字符串2,返回值0。【例6】#includestring.hmain() int k; static char st115,st2=C Language; printf(input a string:n); gets(st1); k=strcmp(st1,st2); if(k=0) printf(st1=st2n); if(k0) printf(st1st2n); if(k0) printf

8、(st1st2。(6)測字符串長度函數(shù)strlen 格式: strlen(字符數(shù)組名) 功能:測字符串的實際長度(不含字符串結(jié)束標(biāo)志0) 并作為函數(shù)返回值。考點一:字符串處理函數(shù)的格式及使用【例7】#includestring.hmain() int k; static char st=C language; k=strlen(st); printf(The lenth of the string is %dn,k);運行結(jié)果運行結(jié)果: :The lenth of the string is 10 【例8】#includestring.hmain() int k; char st=abcSB0

9、123; k=strlen(st); printf(The lenth of the string is %dn,k);運行結(jié)果運行結(jié)果: :The lenth of the string is 5(7)大寫字母轉(zhuǎn)換成小寫字母函數(shù)strlwr格式: strlwr()功能: 將中的大寫字母轉(zhuǎn)換成小寫字母返回。可以是字符數(shù)組或字符串常量。考點一:字符串處理函數(shù)的格式及使用(8)小寫字母轉(zhuǎn)換成大寫字母函數(shù)strupr格式: strlupr()功能: 將中的小寫字母轉(zhuǎn)換成大寫字母返回。可以是字符數(shù)組或字符串常量。案例分析 交流提升PART 03【例1】、有如下程序段char a7=”abcdef”;c

10、har b4=”ABC”;strcpy(a,b);printf(“%c”,a5);的運行結(jié)果是 ( )A)空格B)0 C)c D)f【例2】、程序段char c5=a,b,0,c,0; printf(“%s”,c);的運行結(jié)果是( )A) ab, B)ab C)ab c D)a b【例3】、程序段char a3,b=”China”;a=b; printf(“%s”,a); 的運行結(jié)果是( ) A) China B)輸出Ch C)輸出Chi D)編譯出錯【例4】、程序段char a “tv0willn“; printf(“%d”,strlen(c); 的運行結(jié)果是( )A) 14 B)3 C)9

11、 D)字符串有非法字符,輸出值不穩(wěn)定【例5】、以下程序運行后的輸出結(jié)果是( )#include main() char str1=”abc”,str2=”ABC”,str30=”xyz”; strcpy(str,strcat(str1,str2);puts(str); 仿真演練,體驗探索PART 041、有以下程序 #include main() char p=a, b, c, q10=a, b, c; printf(%d %dn, strlen(p), strlen(q); 以下敘述中正確的是( ) A)在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3 B)由于p數(shù)組中

12、沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3 C)由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但p數(shù)組中字符串長度為3 D)由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定2、以下程序運行后,輸出結(jié)果是( )。#includemain()char a7=a00a00;int i,j; i=sizeof(a);j=strlen(a); printf(%d %dn,i,j); getch();A)22B)76C)72D)623、)以下能正確定義一維數(shù)組的選項是( )A)int a5=0,1,2,3,4,5;B)char a=0,1,2,3,4,5;C)char a=A,B,C;D)

13、int a5=0123; 4、有以下程序 main() char p=a, b, c, q=abc;printf(%d %dn, sizeof(p),sizeof(q); ;程序運行后的輸出結(jié)果是( ) A)4 4B)3 3C)3 4D)4 35、s12和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句S;則以下選項中正確的是( )A)if(s1s2)S; B)if(strcmp(s1,s2)S;C)if(strcmp(s2,s1)0)S; D)if(strcmp(s1,s2)0)S; 6、有以下程序 ( 程序左邊的數(shù)字為行編號)( )1 #include2

14、#include3 main()4 char s=string;5 puts(s);6 strcpy(s, hello);7 printf(“%3sn”,s);8 A)沒有錯 B)第2行有錯 C)第6行有錯 D)第7行有錯7、已有定義:chara=xyz,b=x,y,z;,以下敘述中正確的是( )A)數(shù)組a和b的長度相同 B)a數(shù)組長度小于b數(shù)組長度C)a數(shù)組長度大于b數(shù)組長度 D)上述說法都不對8、有定義語句:int b;char c10;,則正確的輸入語句是( )A)scanf(%d%s,&b,&c);B)scanf(%d%s,&b,c);C)scanf(%d%s,b,c); D)scanf(%d%s,b,&c);9、有以下程序運行后的輸出結(jié)果是( )#includemain() char a1=M, a2=m; printf(%cn, (a1, a2) );10、有一個名為init.txt的文件,內(nèi)容如下:#define HDY(A,B) A/B# define PRINT(Y) printf(y=%dn, Y)有以下程序#include init.txtmain() int a=1,b=2,c=3,d=4,k

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論