![第9章字符數(shù)組_第1頁(yè)](http://file4.renrendoc.com/view/759dece3986673c8abf79c2ba27a5494/759dece3986673c8abf79c2ba27a54941.gif)
![第9章字符數(shù)組_第2頁(yè)](http://file4.renrendoc.com/view/759dece3986673c8abf79c2ba27a5494/759dece3986673c8abf79c2ba27a54942.gif)
![第9章字符數(shù)組_第3頁(yè)](http://file4.renrendoc.com/view/759dece3986673c8abf79c2ba27a5494/759dece3986673c8abf79c2ba27a54943.gif)
![第9章字符數(shù)組_第4頁(yè)](http://file4.renrendoc.com/view/759dece3986673c8abf79c2ba27a5494/759dece3986673c8abf79c2ba27a54944.gif)
![第9章字符數(shù)組_第5頁(yè)](http://file4.renrendoc.com/view/759dece3986673c8abf79c2ba27a5494/759dece3986673c8abf79c2ba27a54945.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第九章
字符數(shù)組和字符串字符數(shù)組定義字符數(shù)組的初始化逐個(gè)字符賦值用字符串常量例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]={'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]
例
charfruit[][7]={"Apple","Orange","Grape","Pear","Peach"};二維字符數(shù)組初始化fruit[0]fruit[1]fruit[2]fruit[3]fruit[4]Apple\0\0Orange\0Grape\0\0Pear\0\0\0Peach\0\0例
輸出一個(gè)字符串#include<stdio.h>voidmain(){charc[10]={'I','','a','m','','a','','b','o','y'};inti;for(i=0;i<10;i++)printf("%c",c[i]);printf("\n");}Iamaboy0123456789字符串字符串及其結(jié)束標(biāo)志無(wú)字符串變量,用字符數(shù)組處理字符串字符串結(jié)束標(biāo)志:'\0'例"hello"共5個(gè)字符,在內(nèi)存占6個(gè)字節(jié)字符串長(zhǎng)度5
hello\01041011081081110內(nèi)存存放字符ASCII碼字符串的輸入輸出逐個(gè)字符I/O:%c整個(gè)字符串I/O:%s例用%cvoidmain(){charstr[5];inti;for(i=0;i<5;i++)scanf("%c",&str[i]);for(i=0;i<5;i++)printf("%c",str[i]);}例用%svoidmain(){charstr[5];scanf("%s",str);printf("%s",str);}用字符數(shù)組名,不要加&輸入串長(zhǎng)度<數(shù)組維數(shù)遇空格或回車結(jié)束自動(dòng)加'\0'用字符數(shù)組名,遇'\0'結(jié)束#include"stdio.h"voidmain(){chara[]={'h','e','l','\0','l','o','\0'};printf("%s",a);}例輸出:hel
hel\0lo\0數(shù)組中有多個(gè)'\0'時(shí),遇第一個(gè)結(jié)束例字符串輸入舉例
How\0
are\0
you?\0
#include<stdio.h>voidmain(){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é)束常用的字符串處理函數(shù)包含在頭文件string.h字符串輸出函數(shù)puts格式:puts(字符數(shù)組)功能:向顯示器輸出字符串(輸出完,換行)說(shuō)明:字符數(shù)組必須以'\0'結(jié)束字符串輸入函數(shù)gets格式:gets(字符數(shù)組)功能:從鍵盤(pán)輸入一以回車結(jié)束(空格無(wú)法結(jié)束)的字符串放
入字符數(shù)組中,并自動(dòng)加'\0'說(shuō)明:輸入串長(zhǎng)度應(yīng)小于字符數(shù)組維數(shù)例#include<stdio.h>voidmain(){charstring[80];printf("Inputastring:");
gets(string);puts(string);}輸入:Howareyou?輸出:Howareyou?字符串連接函數(shù)strcat格式:strcat(字符數(shù)組1,字符數(shù)組2)功能:把字符數(shù)組2連到字符數(shù)組1后面返值:返回字符數(shù)組1的首地址說(shuō)明:字符數(shù)組1必須足夠大連接前,兩串均以'\0'結(jié)束;連接后,串1的'\0'取消,新串最后加'\0'字符串拷貝函數(shù)strcpy格式:strcpy(字符數(shù)組1,字符串2)功能:將字符串2,拷貝到字符數(shù)組1中去返值:返回字符數(shù)組1的首地址說(shuō)明:字符數(shù)組1必須足夠大拷貝時(shí)'\0'一同拷貝不能使用賦值語(yǔ)句為一個(gè)字符數(shù)組賦值例charstr1[20],str2[20];str1={"Hello!"};()str2=str1;()例strcpy與strcat舉例#include<string.h>#include<stdio.h>voidmain(){chardest[25];charblank[]="",c[]="C++",turbo[]="Turbo";
strcpy(dest,turbo);
strcat(dest,blank);
strcat(dest,c);
printf("%s\n",dest);}TurboC++TrboC++0123456789u\024…….Trbo0123456789u\024…….…….Trbo\00123456789u24…….…...字符串比較函數(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,返回零說(shuō)明:字符串比較不能用"==",必須用strcmp字符串長(zhǎng)度函數(shù)strlen格式:strlen(字符數(shù)組)功能:計(jì)算字符串長(zhǎng)度返值:返回字符串實(shí)際長(zhǎng)度,不包括'\0'在內(nèi)例對(duì)于以下字符串,strlen(s)的值為:(1)chars[10]={'A','\0','B','C','\0','D'};(2)chars[]="\t\\\0will\n";(3)chars[]="\x69\082\n";答案:121注意:1、數(shù)組在定義時(shí)直接初始化或通過(guò)循環(huán)語(yǔ)句逐個(gè)初始化。2、引用數(shù)組元素時(shí),只可逐個(gè)引用,千萬(wàn)不可一次引用整個(gè)數(shù)組(字符數(shù)組除外)。3、數(shù)組名可表示整個(gè)數(shù)組在內(nèi)存中一連串存儲(chǔ)單元的首地址。4、字符數(shù)組用"%s"
輸入時(shí),遇到空格或回車表示輸入結(jié)束。5、用%s格式輸入或輸出字符數(shù)組時(shí),函數(shù)scanf的地址項(xiàng)、函數(shù)printf的輸出項(xiàng)都是字符數(shù)組名,而不是數(shù)組元素名。這時(shí)數(shù)組名前不能再加"&"符號(hào),因?yàn)閿?shù)組名就是數(shù)組的起始地址,也不能加下標(biāo)。例比較inta[2][3]={{5,6},{7,8}};與inta[2][3]={5,6,7,8};560780567800
例inta[][10];floatf[2][]={1.2,2.2};例inta[5];a={2,4,6,8,10};例inta[10];floati=3;a[i]=10;例floatweight[10.3];intarray[-100];例
charstr[]="Hello";
charstr[]={'H','e','l','l','o'};
hello02314
hello\0023145小結(jié)
hello02314
hello\0023145字符串與指針1、字符串表示形式兩種方法用字符數(shù)組實(shí)現(xiàn):例
#include"stdio.h"voidmain(){charstring[]="IloveChina!";printf("%s\n",string);printf("%s\n",string+7);}IloveChistring[0]string[1]string[2]string[3]string[4]string[5]string[6]string[7]string[8]string[9]stringstring[10]string[11]string[12]string[13]n!a\0
用字符指針實(shí)現(xiàn)例#include"stdio.h"voidmain(){char*string="IloveChina!";printf("%s\n",string);
string+=7;while(*string){putchar(string[0]);string++;}}IloveChistringn!a\0字符指針初始化:把字符串首地址賦給stringchar*string;string="IloveChina!";string*string!=0
用字符指針實(shí)現(xiàn)
注意:(1)string是一個(gè)存放字符串起始地址的指針變量,不是一個(gè)字符串變量。(2)在程序中出現(xiàn)字符串常量時(shí),系統(tǒng)返回的是一個(gè)起始地址,因此可以將一個(gè)字符串常量賦值給一個(gè)字符指針變量。
*string="IloveChina";
是錯(cuò)誤的!字符指針初始化:把字符串首地址賦給stringchar*string;string="IloveChina!";字符串指針作函數(shù)參數(shù)例用函數(shù)調(diào)用實(shí)現(xiàn)字符串復(fù)制(1)用字符數(shù)組作參數(shù)(2)用字符指針變量作參數(shù)aIamateaceh\0r.fromabyuarasutndetoboet.\0Iaaeceh\0r.t.\0mtavoidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i]; i++;}to[i]='\0';}voidmain(){chara[]="Iamateacher.";charb[]="Youareastudent.";printf("a=%s\nb=%s\n",a,b);
copy_string(a,b);printf("\na=%s\nb=%s\n",a,b);}voidcopy_string(char*from,char*to){for(;*from!='\0';from++,to++)*to=*from;*to='\0';}voidmain(){char*a="Iamateacher.";char*b="Youareastudent.";printf("a=%s\nb=%s\n",a,b);
copy_string(a,b);printf("\na=%s\nb=%s\n",a,b);}COPY函數(shù)還可以進(jìn)行簡(jiǎn)化方式1:voidcopy_string(char*from,char*to){while((*to=*from)!='\0'){to++;from++;}}方式2:voidcopy_string(char*from,char*to){while((*to++=*from++)!='\0');}方式3:voidcopy_string(char*from,char*to){while(*from!='\0')*to++=*from++;*to='\0';}字符指針變量與字符數(shù)組char*cp;與
charstr[20];str由若干元素組成,每個(gè)元素放一個(gè)字符;而cp中存放字符串首地址
charstr[20];str="IloveChina!";()char*cp;cp="IloveChina!";()
注:str是地址常量;cp是地址變量使用cp錄入字符串時(shí),必須先開(kāi)辟存儲(chǔ)空間例charstr[10];scanf("%s",str);()而char*cp;scanf("%s",cp);()改為:char*cp,str[10];cp=str;scanf("%s",cp);()charstr[]={"Hello!"};()charstr[]="Hello!";()charstr[]={'H','e','l','l','o','!'};()char*cp="Hello";()inta[]={1,2,3,4,5};()int*p={1,2,3,4,5};()charstr[10],*cp;inta[10],*p;str="Hello";()cp="Hello!";()a={1,2,3,4,5};()p={1,2,3,4,5};()s
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能門(mén)禁系統(tǒng)安裝合同
- 教師職稱評(píng)定育人工作證明
- Tricyclohexylphosphine-Tricyclohexylphosphane-生命科學(xué)試劑-MCE
- 影視劇制作投資拍攝協(xié)議
- Actein-Standard-生命科學(xué)試劑-MCE
- 寓言故事愚公移山的教育意義深度解讀
- 美容美發(fā)產(chǎn)品使用效果免責(zé)承諾書(shū)
- 水電站落水孔清洗施工方案
- 蘇州玻璃鋼化糞池施工方案
- 2025年滁州c1貨運(yùn)上崗證模擬考試
- 化學(xué)廢水水池清理施工方案
- 水痘護(hù)理查房課件
- 離婚協(xié)議書(shū)常用范本2024年
- 2024年各地中考語(yǔ)文卷【綜合性學(xué)習(xí)題】匯集練附答案解析
- 基于CiteSpace患者旅程地圖的研究熱點(diǎn)與發(fā)展趨勢(shì)分析
- 中國(guó)高血壓防治指南(2024年修訂版)解讀-概述
- 2024年山東省東營(yíng)市中考數(shù)學(xué)試題 (解析版)
- 高中數(shù)學(xué)必修一試卷和答案
- 2024年陜西西安亮麗電力集團(tuán)有限責(zé)任公司招聘筆試沖刺題(帶答案解析)
- 《臨安春雨初霽》課件+2023-2024學(xué)年統(tǒng)編版高中語(yǔ)文選擇性必修下冊(cè)
- 教學(xué)樓設(shè)計(jì)國(guó)內(nèi)外研究現(xiàn)狀
評(píng)論
0/150
提交評(píng)論