




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
字符串處理函數(shù)CONTENTS
目錄提出問題引入新課自主學(xué)習(xí)明確考點案例分析交流提升仿真演練體驗探索提出問題引入新課PART011、有以下程序main(){charp[]={'a','b','c'},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));}程序運行后的輸出結(jié)果是()A)44
B)33
C)34D)432、用于輸入輸出的字符串函數(shù),在使用前應(yīng)包含頭文件
,使用其它字符串函數(shù)則應(yīng)包含頭文件
。提出問題引入新課自主學(xué)習(xí)明確考點PART02對字符串的整體操作,C語言沒有提供相應(yīng)的運算符,但是提供了豐富的字符串處理函數(shù),大致可分為字符串的輸入、輸出、合并、修改、比較、轉(zhuǎn)換、復(fù)制、搜索幾類。 考點一:字符串處理函數(shù)的格式及使用(1)字符串輸出函數(shù)puts格式:puts(字符數(shù)組名)功能:把字符數(shù)組中的字符串輸出到顯示器,即在屏幕上顯示該字符串。【例1】#include"stdio.h"main(){charc[]="howareyou?\nfine,thankyou!";puts(c);}【解析】從程序中可以看出puts函數(shù)中可以使用轉(zhuǎn)義字符,因此輸出結(jié)果成為兩行。程序運行結(jié)果如下:howareyou?fine,thankyou!考點一:字符串處理函數(shù)的格式及使用puts函數(shù)在輸出時將字符串結(jié)束標(biāo)志'\0'轉(zhuǎn)換成'\n'即輸完字符串后換行,它完全可以由printf函數(shù)取代。當(dāng)需要按一定格式輸出時,通常使用printf函數(shù)。(2)字符串輸入函數(shù)gets格式:gets(字符數(shù)組名)功能:從標(biāo)準(zhǔn)輸入設(shè)備鍵盤上輸入一個字符串。本函數(shù)得到一個函數(shù)值,即為該字符數(shù)組的首地址。一般利用gets函數(shù)的目的是向字符數(shù)組輸入一個字符串考點一:字符串處理函數(shù)的格式及使用【例2】#include"stdio.h"main(){charst[15];printf("inputstring:\n");gets(st);puts(st);}【解析:】可以看出當(dāng)輸入的字符串中含有空格時,輸出仍為全部字符串。說明gets函數(shù)并不以空格作為字符串輸入結(jié)束的標(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】#include"string.h"main(){staticcharst1[30]="Mynameis";charst2[10];printf("inputyourname:\n");gets(st2);strcat(st1,st2);puts(st1);}運行結(jié)果:inputyourname:JimGreenMynameisJimGreen【解析:】①本程序把初始化賦值的字符數(shù)組與動態(tài)賦值的字符串連接起來。要說明的是:字符數(shù)組1應(yīng)定義足夠的長度,否則不能全部裝入被連接的字符串。②連接前兩個字符串的后面都有一個'\0',連接時將字符串1后面的’\0’取消,只在新串后面保留一個'\0'。(4)字符串拷貝函數(shù)strcpy格式:strcpy(字符數(shù)組名1,字符數(shù)組名2)功能:把字符數(shù)組2中的字符串拷貝到字符數(shù)組1中。串結(jié)束標(biāo)志'\0'也一同拷貝。字符數(shù)名2,也可以是一個字符串常量。這時相當(dāng)于把一個字符串賦予一個字符數(shù)組。考點一:字符串處理函數(shù)的格式及使用【例4】#include"string.h"main(){staticcharst1[15],st2[]="CLanguage";strcpy(st1,st2);puts(st1);printf("\n");}運行結(jié)果:CLanguage【說明:】本函數(shù)要求字符數(shù)組1應(yīng)有足夠的長度,否則不能全部裝入所拷貝的字符串??键c一:字符串處理函數(shù)的格式及使用(5)字符串比較函數(shù)strcmp格式:strcmp(字符數(shù)組名1,字符數(shù)組名2)功能:按照ASCII碼順序比較兩個數(shù)組中的字符串,并由函數(shù)返回值返回比較結(jié)果。字符串1=字符串2,返回值=0;字符串1〉字符串2,返回值〉0;字符串1〈字符串2,返回值〈0?!纠?】#include"string.h"main(){intk;staticcharst1[15],st2[]="CLanguage";printf("inputastring:\n");gets(st1);k=strcmp(st1,st2);if(k==0)printf("st1=st2\n");if(k>0)printf("st1>st2\n");if(k<0)printf("st1<st2\n");}【解析:】本程序中把輸入的字符串和數(shù)組st2中的串比較,比較結(jié)果返回到k中,根據(jù)k值再輸出結(jié)果提示串。當(dāng)輸入為dbase時,由ASCII碼可知"dBASE"大于CLanguage"故k〉0,輸出結(jié)果"st1>st2"。(6)測字符串長度函數(shù)strlen格式:strlen(字符數(shù)組名)功能:測字符串的實際長度(不含字符串結(jié)束標(biāo)志'\0')并作為函數(shù)返回值??键c一:字符串處理函數(shù)的格式及使用【例7】#include"string.h"main(){intk;staticcharst[]="Clanguage";k=strlen(st);printf("Thelenthofthestringis%d\n",k);}運行結(jié)果:Thelenthofthestringis10
【例8】#include"string.h"main(){intk;charst[]="abcSB\0123";k=strlen(st);printf("Thelenthofthestringis%d\n",k);}運行結(jié)果:Thelenthofthestringis5(7)大寫字母轉(zhuǎn)換成小寫字母函數(shù)strlwr格式:strlwr(<字符串>)功能:將<字符串>中的大寫字母轉(zhuǎn)換成小寫字母返回。<字符串>可以是字符數(shù)組或字符串常量。考點一:字符串處理函數(shù)的格式及使用(8)小寫字母轉(zhuǎn)換成大寫字母函數(shù)strupr格式:strlupr(<字符串>)功能:將<字符串>中的小寫字母轉(zhuǎn)換成大寫字母返回。<字符串>可以是字符數(shù)組或字符串常量。案例分析交流提升PART03【例1】、有如下程序段chara[7]=”abcdef”;charb[4]=”ABC”;strcpy(a,b);printf(“%c”,a[5]);的運行結(jié)果是()A)空格
B)\0
C)c
D)f【例2】、程序段charc[5]={’a’,’b’,’\0’,’c’,’\0’};printf(“%s”,c);的運行結(jié)果是()A)’a’’b’,’
B)ab
C)abc
D)ab【例3】、程序段chara[3],b[]=”China”;a=b;printf(“%s”,a);的運行結(jié)果是()A)China
B)輸出Ch
C)輸出Chi
D)編譯出錯【例4】、程序段chara[]=“\t\v\\\0will\n“;printf(“%d”,strlen(c));的運行結(jié)果是()A)14
B)3
C)9
D)字符串有非法字符,輸出值不穩(wěn)定【例5】、以下程序運行后的輸出結(jié)果是()#include<stdio.h>main(){charstr1[]=”abc”,str2[]=”ABC”,str[30]=”xyz”;strcpy(str,strcat(str1,str2));puts(str);
}仿真演練,體驗探索PART041、有以下程序#includemain(){charp[]={'a','b','c'},q[10]={'a','b','c'};printf("%d%d\n",strlen(p),strlen(q));}以下敘述中正確的是()A)在給p和q數(shù)組置初值時,系統(tǒng)會自動添加字符串結(jié)束符,故輸出的長度都為3B)由于p數(shù)組中沒有字符串結(jié)束符,長度不能確定;但q數(shù)組中字符串長度為3C)由于q數(shù)組中沒有字符串結(jié)束符,長度不能確定;但p數(shù)組中字符串長度為3D)由于p和q數(shù)組中都沒有字符串結(jié)束符,故長度都不能確定2、以下程序運行后,輸出結(jié)果是()。#include<stdio.h>main(){chara[7]="a0\0a0\0";inti,j;i=sizeof(a);j=strlen(a);printf("%d%d\n",i,j);getch();}A)22
B)76C)72D)623、)以下能正確定義一維數(shù)組的選項是()A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};C)chara={'A','B','C'};D)inta[5]="0123";4、有以下程序main(){charp[]={'a','b','c'},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));};程序運行后的輸出結(jié)果是()A)44
B)33
C)34
D)435、s12和s2已正確定義并分別指向兩個字符串。若要求:當(dāng)s1所指串大于s2所指串時,執(zhí)行語句S;則以下選項中正確的是()A)if(s1>s2)S;
B)if(strcmp(s1,s2))S;C)if(strcmp(s2,s1)>0)S;
D)if(strcmp(s1,s2)>0)S;6、有以下程序(程序左邊的數(shù)字為行編號)()1#include<stdio.h>2#include<string.h>3main()4{chars[]={"string"};5puts(s);6strcpy(s,"hello");7printf(“%3s\n”,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、有定義語句:intb;charc[10];,則正確的輸入語句是()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é)果是()#include<stdio.h>main(){chara1='M',a2='m';printf("%c\n",(a1,a2));}10、有一個名為init.txt的文件,內(nèi)容如下:#defineHDY(A,B)A/B#definePRINT(Y)printf("y=%d\n",Y)有以下程序#include"init.txt"main(){inta=1,b=2,c=3,d=4,k;k=HDY(a+c,b+d);PRINT(k);}下面針對該程序的敘述正確的是()A)編譯有錯B
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教資面試my room 教學(xué)課件
- 產(chǎn)品專員基本知識培訓(xùn)課件
- 產(chǎn)后子宮修復(fù)病例查房課件
- 一年級數(shù)學(xué)計算題專項練習(xí)1000題匯編
- 五年級數(shù)學(xué)(小數(shù)四則混合運算)計算題專項練習(xí)及答案匯編
- 湖南省岳陽市平江縣2026屆中考數(shù)學(xué)考前最后一卷含解析
- 天津市和平區(qū)第二十中學(xué)2026屆中考數(shù)學(xué)押題卷含解析
- 小數(shù)點搬家教學(xué)課件
- 四川省仁壽縣聯(lián)誼學(xué)校2026屆中考聯(lián)考物理試卷含解析
- 交換設(shè)備基礎(chǔ)知識培訓(xùn)課件
- 智慧華中大統(tǒng)一身份認(rèn)證系統(tǒng)建設(shè)方案
- 保時捷訂車合同范例
- 借道合同協(xié)議書
- 高速鐵路路基試驗段施工方案
- 林業(yè)專業(yè)知識考試試題及答案
- 中職旅游專業(yè)《中國旅游地理》說課稿
- 常見有毒易燃易爆氣體、粉塵檢測合格標(biāo)準(zhǔn)
- 呋喃西林溶液的毒理學(xué)研究
- 2023-2024學(xué)年安徽省合肥一中高一(下)期末物理試卷(含答案)
- 第一屆全國技能大賽機電一體化項目“專業(yè)技術(shù)規(guī)范”
- 光伏電站施工管理要點培訓(xùn)
評論
0/150
提交評論