![C程序設(shè)計(jì)ch07字符數(shù)組與串_第1頁](http://file4.renrendoc.com/view/9edaf2047c1245dcfd56929084b2e6de/9edaf2047c1245dcfd56929084b2e6de1.gif)
![C程序設(shè)計(jì)ch07字符數(shù)組與串_第2頁](http://file4.renrendoc.com/view/9edaf2047c1245dcfd56929084b2e6de/9edaf2047c1245dcfd56929084b2e6de2.gif)
![C程序設(shè)計(jì)ch07字符數(shù)組與串_第3頁](http://file4.renrendoc.com/view/9edaf2047c1245dcfd56929084b2e6de/9edaf2047c1245dcfd56929084b2e6de3.gif)
![C程序設(shè)計(jì)ch07字符數(shù)組與串_第4頁](http://file4.renrendoc.com/view/9edaf2047c1245dcfd56929084b2e6de/9edaf2047c1245dcfd56929084b2e6de4.gif)
![C程序設(shè)計(jì)ch07字符數(shù)組與串_第5頁](http://file4.renrendoc.com/view/9edaf2047c1245dcfd56929084b2e6de/9edaf2047c1245dcfd56929084b2e6de5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
7.1字符數(shù)組和字符串字符數(shù)組定義字符數(shù)組的初始化逐個(gè)字符賦值用字符串常量字符數(shù)組的引用例charc[10],ch[3][4];例charch[5]={‘H’,’e’,’l’,’l’,’o’};ch[0]Hello逐個(gè)字符賦值ch[1]ch[2]ch[3]ch[4]例charch[5]={‘H’,’e’,’l’,’l’,’o’};ch[0]Hello逐個(gè)字符賦值ch[1]ch[2]ch[3]ch[4]例charch[5]={‘B’,’o’,’y’};ch[0]Boy\0\0逐個(gè)字符賦值ch[1]ch[2]ch[3]ch[4]例charch[5]=“Boy”;ch[0]Boy\0\0用字符串常量ch[1]ch[2]ch[3]ch[4]例charch[6]={“Hello”};charch[6]=“Hello”;charch[]=“Hello”;用字符串常量ch[0]Helloch[1]ch[2]ch[3]ch[4]\0ch[5]第七章字符數(shù)組和串1例chardiamond[][5]={{'.','.','*'},{'.','*','.','*'}, {'*','.','.','.','*'},{'.','*','.','*'},{'.','.','*'}};二維字符數(shù)組初始化..*\0\0.*.*\0*...*.*.*\0..*\0\0diamond[0]diamond[1]diamond[2]diamond[3]diamond[4]例charfruit[][7]={“Apple”,”O(jiān)range”,”Grape”,”Pear”,”Peach”};二維字符數(shù)組初始化fruit[0]fruit[1]fruit[2]fruit[3]fruit[4]Apple\0\0Orange\0Grape\0\0Pear\0\0\0Peach\0\02例
輸出一個(gè)字符串#include<stdio.h>main(){charc[10]={'I','','a','m','','a','','b','o','y'};inti;for(i=0;i<10;i++)printf("%c",c[i]);printf("\n");}Iamaboy01234567893字符串字符串及其結(jié)束標(biāo)志無字符串變量,用字符數(shù)組處理字符串字符串結(jié)束標(biāo)志:‘\0’例“hello”共5個(gè)字符,在內(nèi)存占6個(gè)字節(jié)字符串長度5
hello\01041011081081110內(nèi)存存放字符ASCII碼4字符串的輸入輸出逐個(gè)字符I/O:%c整個(gè)字符串I/O:%s搜索集過濾:%[]例用%cmain(){charstr[5];inti;for(i=0;i<5;i++)scanf(“%c”,&str[i]);for(i=0;i<5;i++)printf(“%c”,str[i]);}例用%smain(){charstr[5];scanf(“%s”,str);printf(“%s”,str);}用字符數(shù)組名,不要加&輸入串長度<數(shù)組維數(shù)遇空格或回車結(jié)束自動(dòng)加‘\0’用字符數(shù)組名,遇‘\0’結(jié)束例用%[]main(){charstr[80];scanf(“%[^\n]”,str);printf(“%s”,str);}5例main(){chara[5]={‘H’,’e’,’l’,’l’,’o’};printf(“%s”,a);}例main(){chara[]=“Hello”;printf(“%s”,a);}結(jié)果:Hello#-=*
hello02314結(jié)果:Hello用“%s”輸出時(shí),遇‘\0’結(jié)束6main(){chara[]={'h','e','l','\0','l','o','\0'};printf("%s",a);}例輸出:helhel\0lo\0數(shù)組中有多個(gè)‘\0’時(shí),遇第一個(gè)結(jié)束7main(){inti;chara[5];scanf("%s",a);for(i=0;i<5;i++)printf("%d,",a[i]);}運(yùn)行情況:(1)若輸入hel,正常(2)若輸入hell,正常(3)若輸入hello,用%s輸出時(shí),會(huì)出現(xiàn)問題hel\0hell\0hello輸入字符串長度<數(shù)組維數(shù)8例字符串輸入舉例How\0are\0you?\0#include<stdio.h>main(){chara[15],b[5],c[5];
scanf("%s%s%s",a,b,c);printf("a=%s\nb=%s\nc=%s\n",a,b,c);scanf("%s",a);printf("a=%s\n",a);}運(yùn)行情況:輸入:Howareyou?輸出:a=Howb=arec=you?輸入:Howareyou?輸出:a=Howscanf中%s輸入時(shí),遇空格或回車結(jié)束運(yùn)行情況:輸入:Howareyou?9例若準(zhǔn)備將字符串“Thisisastring.”記錄下來,錯(cuò)誤的輸入語句為:(A)scanf(“%20s”,s);(B)for(k=0;k<17;k++)s[k]=getchar();(C)while((c=getchar())!=‘\n’)s[k++]=c;把格式數(shù)據(jù)寫到字符數(shù)組:chartmps[30];
sprintf(tmps,"123012007%03d%s\n",1,”XiaoMing”);10double
atof(
const
char
*string
);int
atoi(
const
char
*string
);__int64_atoi64(
constchar
*string
);long
atol(
const
char
*string
);字符串算術(shù)運(yùn)算函數(shù)p228包含在頭文件stdlib.h#include<stdlib.h>#include<stdio.h>voidmain(void){char*s;doublex;inti;longl;s="-2309.12E-15";/*Testofatof*/x=atof(s);printf("atoftest:ASCIIstring:%s\tfloat:%e\n",s,x);s="7.8912654773d210";/*Testofatof*/x=atof(s);printf("atoftest:ASCIIstring:%s\tfloat:%e\n",s,x);s="-9885pigs";/*Testofatoi*/i=atoi(s);printf("atoitest:ASCIIstring:%s\t\tinteger:%d\n",s,i);s="98854dollars";/*Testofatol*/l=atol(s);printf("atoltest:ASCIIstring:%s\t\tlong:%ld\n",s,l);}7.2字符串函數(shù)11常用的字符串處理函數(shù)包含在頭文件string.h字符串輸出函數(shù)puts格式:puts(字符數(shù)組)功能:向顯示器輸出字符串(輸出完,換行)說明:字符數(shù)組必須以‘\0’結(jié)束字符串輸入函數(shù)gets格式:gets(字符數(shù)組)功能:從鍵盤輸入一以回車結(jié)束的字符串放入字符數(shù)組中,并自動(dòng)加‘\0’說明:輸入串長度應(yīng)小于字符數(shù)組維數(shù)例#include<stdio.h>main(){charstring[80];printf(“Inputastring:”);gets(string);puts(string);}輸入:Howareyou?輸出:Howareyou?
12字符串連接函數(shù)strcat格式:strcat(字符數(shù)組1,字符數(shù)組2)功能:把字符數(shù)組2連到字符數(shù)組1后面返值:返回字符數(shù)組1的首地址說明:字符數(shù)組1必須足夠大連接前,兩串均以‘\0’結(jié)束;連接后,串1的‘\0’取消,新串最后加‘\0’字符串拷貝函數(shù)strcpy格式:strcpy(字符數(shù)組1,字符串2)功能:將字符串2,拷貝到字符數(shù)組1中去返值:返回字符數(shù)組1的首地址說明:字符數(shù)組1必須足夠大拷貝時(shí)‘\0’一同拷貝不能使用賦值語句為一個(gè)字符數(shù)組賦值例charstr1[20],str2[20];str1={“Hello!”};()str2=str1;()13例strcpy與strcat舉例#include<string.h>#include<stdio.h>voidmain(){chardestination[25];charblank[]="",c[]="C++",turbo[]="Turbo";strcpy(destination,turbo);strcat(destination,blank);strcat(destination,c);printf("%s\n",destination);}TurboC++TrboC++0123456789u\024…….Trbo0123456789u\024…….…….Trbo\00123456789u24…….…...14字符串比較函數(shù)strcmp格式:strcmp(字符串1,字符串2)功能:比較兩個(gè)字符串比較規(guī)則:對(duì)兩串從左向右逐個(gè)字符比較(ASCII碼),直到遇到不同字符或‘\0’為止返值:返回int型整數(shù),a.若字符串1<字符串2,返回負(fù)整數(shù)
b.若字符串1>字符串2,返回正整數(shù)
c.若字符串1==字符串2,返回零說明:字符串比較不能用“==”,必須用strcmp字符串長度函數(shù)strlen格式:strlen(字符數(shù)組)功能:計(jì)算字符串長度返值:返回字符串實(shí)際長度,不包括‘\0’在內(nèi)例對(duì)于以下字符串,strlen(s)的值為:(1)chars[10]={‘A’,‘\0’,‘B’,‘C’,‘\0’,‘D’};(2)chars[]=“\t\v\\\0will\n”;(3)chars[]=“\x69\082\n”;答案:13115#include<string.h>#include<stdio.h>main(){charstr1[]=”Hello!",str2[]=”Howareyou?”,str[20];intlen1,len2,len3;len1=strlen(str1);len2=strlen(str2);if(strcmp(str1,str2)>0){strcpy(str,str1);strcat(str,str2);}elseif(strcmp(str1,str2)<0){strcpy(str,str2);strcat(str,str1);}elsestrcpy(str,str1);len3=strlen(str);puts(str);printf(”Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3);}例strcmp與strlen舉例Howareyou?Hello!Len1=6,Len2=12,Len3=1816應(yīng)用舉例例輸入一行字符,統(tǒng)計(jì)其中有多少個(gè)單詞。
對(duì)照教材第8章CASESTUDIES第1題(設(shè)定單詞之間僅一個(gè)空格),本題空格數(shù)不作限定。輸入一字符串給stringi=0num=0word=0當(dāng)((c=string[i])!=‘\0’)c=空格真真假假word=0word=1num=num+1i=i+1輸出:numword==0#include<stdio.h>main(){charstring[81];inti,num=0,word=0;charc;
gets(string);for(i=0;(c=string[i])!='\0';i++)if(c=='')word=0;elseif(word==0){word=1;num++;}printf("Thereare%dwords\intheline\n",num);}17當(dāng)前字符=空格是否未出現(xiàn)新單詞,使word=0,num不累加前一字符為空格(word==0),新單詞出現(xiàn),word=1,num加1前一字符為非空格(word==1),未出現(xiàn)新單詞,num不變否0是11是1未01否0是12否1未12是1未02否0是13是1未03否0是14否1未14否1未14否1未14例輸入:Iamaboy.當(dāng)前字符是否空格word原值新單詞開始否word新值num值Iamaboy.18其它串處理函數(shù)包含在頭文件string.hstrncpystrncmpstrncatstrstrstrchrstrpbrk19串列表
p237例有三個(gè)字符串,找出其中最大者How\0Hello\0High\0str[0]str[1]str[2]#include<stdio.h>#include<string.h>main(){charstring[20],str[3][20];inti;for(i=0;i<3;i++)
gets(str[i]);if(strcmp(str[0],str[1])>0)
strcpy(string,str[0]);else
溫馨提示
- 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年全球及中國自動(dòng)式雙面研磨床行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 土地廠房買賣合同
- 空心磚采購合同
- 石材采購合同范本
- 涂料勞務(wù)承包合同協(xié)議書
- 醫(yī)療器械配送合同
- 汽車貨物運(yùn)輸合同樣本
- 2025農(nóng)村簡(jiǎn)易買賣合同
- 2025如何確定勞動(dòng)合同的成立商業(yè)保理資格
- 最高額抵押擔(dān)保合同
- 2025財(cái)年美國國防預(yù)算概覽-美國國防部(英)
- 2024年江西省南昌市中考一模數(shù)學(xué)試題(含答案)
- 48貴州省貴陽市2023-2024學(xué)年五年級(jí)上學(xué)期期末數(shù)學(xué)試卷
- 《采暖空調(diào)節(jié)能技術(shù)》課件
- 游戲綜合YY頻道設(shè)計(jì)模板
- arcgis軟件操作解析課件
- 中興ZCTP 5GC高級(jí)工程師認(rèn)證考試題庫匯總(含答案)
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)教程PPT全套完整教學(xué)課件
- 小學(xué)科學(xué)項(xiàng)目化作業(yè)的設(shè)計(jì)與實(shí)施研究
- 2020年中考生物試卷及答案
- MCNP-5A程序使用說明書
評(píng)論
0/150
提交評(píng)論