版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1 講 字符串河南理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2012暑期暑期培訓(xùn)培訓(xùn)Cmain() char a=h,e,l,0,l,o,0; printf(%s,a);例輸出:hel h e l 0 l o 0數(shù)組中有多個(gè)0時(shí),遇第一個(gè)結(jié)束輸出結(jié)果?輸出結(jié)果?例 字符串輸入舉例 H o w 0 a r e 0 y o u ? 0 #include 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);運(yùn)行情況:輸入:How are you?輸出:a=
2、How b=are c=you?輸入:How are you?輸出:a=Howscanf中%s輸入時(shí),遇空格或回車結(jié)束運(yùn)行情況:輸入:How are you?例 若準(zhǔn)備將字符串“This is a string.”記錄下來,錯(cuò)誤的輸入語句為:(A)scanf(“%20s”,s);(B)for(k=0;k17;k+) sk=getchar();(C)while(c=getchar()!=n) sk+=c;字符數(shù)組v定義 v字符數(shù)組的初始化l逐個(gè)字符賦值l用字符串常量v字符數(shù)組的引用例 char c10, ch34; 例 char ch5=H,e,l,l,o;ch0Hello逐個(gè)字符賦值ch1ch
3、2ch3ch4有問題! 例 char ch5=H,e,l,l,o;ch0Hello逐個(gè)字符賦值ch1ch2ch3ch4 例 char ch5=B,o,y;ch0Boy00逐個(gè)字符賦值ch1ch2ch3ch4 例 char ch5=“Boy”;ch0Boy00用字符串常量ch1ch2ch3ch4 例 char ch6=“Hello”; char ch6=“Hello”; char ch=“Hello”;用字符串常量ch0Helloch1ch2ch3ch40ch5 例 char diamond5=., .,*,.,*,.,*, *, ., ., . ,*,.,*, .,*,., .,*;二維字符數(shù)
4、組初始化.*00.*.*0*.*.*.*0.*00diamond0diamond1diamond2diamond3diamond4 例 char fruit7=“Apple”,”O(jiān)range”, ”Grape”,”Pear”,”Peach”;二維字符數(shù)組初始化fruit0fruit1fruit2fruit3fruit4Apple00Orange0Grape00Pear000Peach00例 輸出一個(gè)字符串#include main() char c10=I, ,a,m, ,a, ,b,o,y; int i; for(i=0;i10;i+) printf(%c,ci); printf(n);Ia
5、maboy0123456789字符串v字符串及其結(jié)束標(biāo)志l無字符串變量,用字符數(shù)組處理字符串l字符串結(jié)束標(biāo)志:0例 “hello”共5個(gè)字符,在內(nèi)存占6個(gè)字節(jié) 字符串長(zhǎng)度5 h e l l o 0104 101 108 108 111 0內(nèi)存存放字符ASCII碼v字符串的輸入輸出l逐個(gè)字符輸入輸出: %cl整個(gè)字符串輸入輸出: %s例 用%c main() char str5; int i; for(i=0;i5;i+) scanf(“%c”, &stri); for(i=0;i5;i+) printf(“%c”, stri);例 用%s main() char str5; scanf(“%s
6、”, str); printf(“%s”, str);用字符數(shù)組名,不要加&輸入串長(zhǎng)度數(shù)組維數(shù)遇空格或回車結(jié)束自動(dòng)加0用字符數(shù)組名,遇0結(jié)束例 main( ) char a5=H,e,l,l,o; printf(“%s”,a); 例 main( ) char a =“Hello”; printf(“%s”,a); 結(jié)果:Hello#-=* h e l l o02314結(jié)果:Hello用“%s”輸出時(shí),遇0結(jié)束main() int i; char a5; scanf(%s,a); for(i=0;i5;i+) printf(%d,ai);運(yùn)行情況:(1)若輸入 hel , 正常(2)若輸入 he
7、ll , 正常(3)若輸入 hello , 用%s 輸出時(shí),會(huì)出現(xiàn)問題 h e l 0 h e l l 0 h e l l o輸入字符串長(zhǎng)度數(shù)組維數(shù)例 字符串輸入舉例 H o w 0 a r e 0 y o u ? 0 #include 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);運(yùn)行情況:輸入:How are you?輸出:a=How b=are c=you?輸入:How are you?輸出:a=Howscanf中%s輸入時(shí),遇
8、空格或回車結(jié)束運(yùn)行情況:輸入:How are you? 指針與字符串字符串表示形式v用字符數(shù)組實(shí)現(xiàn)例 main( ) char string=“I love China!”; printf(“%sn”,string); printf(“%sn”,string+7); IloveChistring0string1string2string3string4string5string6string7string8string9stringstring10string11string12string13n!a0v用字符指針實(shí)現(xiàn)例 main( ) char *string=“I love China!”
9、; printf(“%sn”,string); string+=7; while(*string) putchar(string0); string+; IloveChistringn!a0字符指針初始化:把字符串首地址賦給string char *string; string=“I love China!”;string*string!=0字符串指針作函數(shù)參數(shù)例 用函數(shù)調(diào)用實(shí)現(xiàn)字符串復(fù)制(1)用字符數(shù)組作參數(shù)(2)用字符指針變量作參數(shù)aIamateaceh0r.fromabyuarasutndetoboet.0Iaaeceh0r.t.0mtavoid copy_string(char fro
10、m,char to) int i=0; while(fromi!=0) toi=fromi;i+; toi=0;main() char a=I am a teacher.; char b=You are a student.; printf(string_a=%sn string_b=%sn,a,b); copy_string(a,b); printf(nstring_a=%snstring_b=%sn,a,b);void copy_string(char *from,char *to) for(;*from!=0;from+,to+) *to=*from; *to=0;main() char
11、 *a=I am a teacher.; char *b=You are a student.; printf(string_a=%snstring_b=%sn,a,b); copy_string(a,b); printf(nstring_a=%snstring_b=%sn,a,b);字符指針變量與字符數(shù)組char *cp; 與 char str20;vstr由若干元素組成,每個(gè)元素放一個(gè)字符;而cp中存放字符串首地址v char str20; str=“I love China!”; () char *cp; cp=“I love China!”; ()vstr是地址常量;cp是地址變量vc
12、p接受鍵入字符串時(shí),必須先開辟存儲(chǔ)空間例 char str10; scanf(“%s”,str); ()而 char *cp; scanf(“%s”, cp); ()改為: char *cp,str10; cp=str; scanf(“%s”,cp); ()字符串與數(shù)組關(guān)系l字符串用一維字符數(shù)組存放l字符數(shù)組具有一維數(shù)組的所有特點(diǎn)u數(shù)組名是指向數(shù)組首地址的地址常量u數(shù)組元素的引用方法可用指針法和下標(biāo)法u數(shù)組名作函數(shù)參數(shù)是地址傳遞等l區(qū)別u存儲(chǔ)格式:字符串結(jié)束標(biāo)志u賦值方式與初始化u輸入輸出方式:%s %cchar str=“Hello!”; ()char str=“Hello!”; ()cha
13、r str=H,e,l,l,o,!; ()char *cp=“Hello”; ()int a=1,2,3,4,5; ()int *p=1,2,3,4,5; ()char str10,*cp;int a10,*p;str=“Hello”; ()cp=“Hello!”; ()a=1,2,3,4,5; ()p=1,2,3,4,5; ()v常用的字符串處理函數(shù)包含頭文件 string.hu字符串輸出函數(shù)puts格式:puts(字符數(shù)組)功能:向顯示器輸出字符串(輸出完,換行)說明:字符數(shù)組必須以0結(jié)束u字符串輸入函數(shù)gets格式:gets(字符數(shù)組)功能:從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中,
14、 并自動(dòng)加0說明:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組維數(shù)例 #include main( ) char string80; printf(“Input a string:”); gets(string); puts(string); 輸入: How are you?輸出: How are you ? u字符串連接函數(shù)strcat格式:strcat(字符數(shù)組1,字符數(shù)組2)功能:把字符數(shù)組2連到字符數(shù)組1后面返值:返回字符數(shù)組1的首地址說明:字符數(shù)組1必須足夠大 連接前,兩串均以0結(jié)束;連接后,串1的0取消, 新串最后加0u字符串拷貝函數(shù)strcpy格式:strcpy(字符數(shù)組1,字符串2)功能:將字符串
15、2,拷貝到字符數(shù)組1中去返值:返回字符數(shù)組1的首地址說明:字符數(shù)組1必須足夠大 拷貝時(shí)0一同拷貝 不能使用賦值語句為一個(gè)字符數(shù)組賦值例 char str120,str220; str1=“Hello!”; () str2=str1; ()例 strcpy與strcat舉例#include #include void main() char destination25; char blank = , c= C+, turbo = Turbo; strcpy(destination, turbo); strcat(destination, blank); strcat(destination, c
16、); printf(%sn, destination);TrboC+0123456789u024.Trbo0123456789u024.Trbo00123456789u24.u字符串比較函數(shù)strcmp格式:strcmp(字符串1,字符串2)功能:比較兩個(gè)字符串比較規(guī)則:對(duì)兩串從左向右逐個(gè)字符比較(ASCII碼), 直到遇到不同字符或0為止返值:返回int型整數(shù),a. 若字符串1 字符串2, 返回正整數(shù) c. 若字符串1= 字符串2, 返回零說明:字符串比較不能用“=”,必須用strcmpu字符串長(zhǎng)度函數(shù)strlen格式:strlen(字符數(shù)組)功能:計(jì)算字符串長(zhǎng)度返值:返回字符串實(shí)際長(zhǎng)度,不
17、包括0在內(nèi)例 對(duì)于以下字符串,strlen(s)的值為:(1)char s10=A,0,B,C,0,D;(2)char s =“tv0willn”;(3)char s =“x69082n”; 答案:1 3 1#include #include main() char str1 = ”Hello!, str2 = ”How are you?”,str20; int len1,len2,len3; len1=strlen(str1); len2=strlen(str2); if(strcmp(str1, str2)0) strcpy(str,str1); strcat(str,str2); els
18、e if (strcmp(str1, str2)0) strcpy(str,str2); strcat(str,str1); else strcpy(str,str1); len3=strlen(str); puts(str); printf(”Len1=%d,Len2=%d,Len3=%dn”,len1,len2,len3);例 strcmp與strlen舉例How are you?Hello!Len1=6,Len2=12,Len3=18應(yīng)用舉例例 輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞輸入一字符串給 string i=0 num=0 word=0當(dāng)(c=stringi)!=0)c=空格真真假假word=0word=1num=num+1i=i+1輸出:numword=0#include main() char string81; int i,num=0,word=0; cha
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版宿舍樓智能監(jiān)控設(shè)施承包合同3篇
- 2025年度木材貿(mào)易與木工加工合作合同4篇
- 夏令營2025非傳統(tǒng)教育項(xiàng)目合作合同3篇
- 2025年度木材加工廠設(shè)備租賃合同范本7篇
- 《漢服唯美古詩句》課件
- 2025版實(shí)習(xí)員工實(shí)習(xí)期間住宿安排合同3篇
- 養(yǎng)生保健與中醫(yī)養(yǎng)生藥物考核試卷
- 合成革表面處理與涂飾技術(shù)考核試卷
- 2025版智能電網(wǎng)信息安全防護(hù)合同4篇
- 創(chuàng)業(yè)空間科技創(chuàng)新平臺(tái)考核試卷
- 《天潤(rùn)乳業(yè)營運(yùn)能力及風(fēng)險(xiǎn)管理問題及完善對(duì)策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 農(nóng)民專業(yè)合作社財(cái)務(wù)報(bào)表(三張報(bào)表)
- 動(dòng)土作業(yè)專項(xiàng)安全培訓(xùn)考試試題(帶答案)
- 大學(xué)生就業(yè)指導(dǎo)(高職就業(yè)指導(dǎo)課程 )全套教學(xué)課件
- 死亡病例討論總結(jié)分析
- 第二章 會(huì)展的產(chǎn)生與發(fā)展
- 空域規(guī)劃與管理V2.0
- JGT266-2011 泡沫混凝土標(biāo)準(zhǔn)規(guī)范
- 商戶用電申請(qǐng)表
評(píng)論
0/150
提交評(píng)論