C第六章數(shù)組指針與字符串課件_第1頁
C第六章數(shù)組指針與字符串課件_第2頁
C第六章數(shù)組指針與字符串課件_第3頁
C第六章數(shù)組指針與字符串課件_第4頁
C第六章數(shù)組指針與字符串課件_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)1數(shù)組 數(shù)組的聲明與使用 數(shù)組:具有一定順序關(guān)系的若干相同類型變量的集合體,組成數(shù)組的變量稱為該數(shù)組的元素。 同一數(shù)組的各元素具有相同的類型 數(shù)組可以由除void以外的任何一種類型構(gòu)成第1頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)2數(shù)組 數(shù)組的聲明 格式eg: int a10;10個(gè)元素,a0,a1a 數(shù)據(jù)類型 數(shù)組名 常量表達(dá)式 1 常量表達(dá)式2 . . .整型、浮點(diǎn)型、自定義類型數(shù)組名:常量,代表數(shù)組元素在內(nèi)存中的起始地址unsigned int限定數(shù)組元素個(gè)數(shù)9?eg:int a53;有 個(gè)元素,a00,a01a ?15?43第2頁,共56頁。面向?qū)ο蟪绦?/p>

2、設(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)3數(shù)組 數(shù)組的引用引用數(shù)組元素:可以出現(xiàn)在簡(jiǎn)單變量能出現(xiàn)的任何地方,如,賦值、輸入、輸出、基本運(yùn)算格式:數(shù)組名下標(biāo)1 下標(biāo)2整常數(shù)整型變量整型表達(dá)式整型數(shù)組元素值為整數(shù)的函數(shù)score2scoreiscore2+iscorenum 2scoremax(i,j)int an;下標(biāo)取值范圍為: 0n-1第3頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)4數(shù)組 數(shù)組的存儲(chǔ) 一維數(shù)組元素在內(nèi)存中順序、連續(xù)存儲(chǔ) 數(shù)組元素在內(nèi)存中占據(jù)一組連續(xù)的存儲(chǔ)單元 邏輯上相鄰的元素在物理地址上也是相鄰的 數(shù)組名是數(shù)組首元素的內(nèi)存首地址為數(shù)組a分配的連續(xù)的存儲(chǔ)單元a0a1a2數(shù)組在內(nèi)存的首地址:a 或

3、?eg:int a3數(shù)組元素為:a0、a1、a2第4頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)5數(shù)組數(shù)組的存儲(chǔ) 二維數(shù)組元素在內(nèi)存按行存放 相當(dāng)于一個(gè)兩行三列的矩陣 先放第一行,再放第二行 每行元素按列下標(biāo)由小到大順次存放eg:int a23數(shù)組元素為:a00、a01、a02、a10、a11、a12a00a01a02a10a12a11第5頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)6數(shù)組 數(shù)組的初始化 初始化:聲明數(shù)組時(shí)給全部或部分?jǐn)?shù)組元素賦初值 基本類型數(shù)組:給數(shù)組元素賦值 對(duì)象數(shù)組:調(diào)用構(gòu)造函數(shù)1、在定義數(shù)組時(shí)對(duì)數(shù)組中的全部元素賦初值eg:int a5=1,2,3,7,6; 2、給數(shù)組的

4、前幾個(gè)元素賦初值,其余元素自動(dòng)初始化為0eg:int b5=1,2,3; = int b5=1,2,3,0,03、定義數(shù)組時(shí)不指定數(shù)組的長(zhǎng)度,而用花括號(hào)中的初值個(gè)數(shù)決定數(shù)組長(zhǎng)度eg:int a=1,2,3,7,6; = int a5=1,2,3,7,6;第6頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)7數(shù)組 實(shí)例分析#include using namespace std;void main()int A5,B5;for( )Ai=i*2-1;B5-i-1=Ai;for( )coutAi =Ai;cout Bi= Biendl;1、分析程序的運(yùn)行結(jié)果2、填空int i=0;i5;i+int i

5、=0;i5;i+第7頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)8數(shù)組 數(shù)組作為函數(shù)參數(shù) 函數(shù)的參數(shù)傳遞方式 值傳遞:函數(shù)調(diào)用時(shí),為形參分配單元,并將實(shí)參的值復(fù)制到形參中;調(diào)用結(jié)束,形參單元被釋放,實(shí)參單元仍保留并維持原值特點(diǎn):形參與實(shí)參占用不同的內(nèi)存單元; “單向”傳遞 地址傳遞:函數(shù)調(diào)用時(shí),將數(shù)據(jù)的存儲(chǔ)地址作為參數(shù)傳遞給形參特點(diǎn):形參與實(shí)參占用同樣的存儲(chǔ)單元; “雙向”傳遞第8頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)9數(shù)組 數(shù)組作為函數(shù)參數(shù) 數(shù)組元素和數(shù)組名都可作為函數(shù)的參數(shù) 數(shù)組元素做實(shí)參:值傳遞 數(shù)組名做實(shí)參:地址傳遞實(shí)參和形參都應(yīng)該是數(shù)組名形參數(shù)組和實(shí)參數(shù)組的首地址重合第9頁,共

6、56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)10數(shù)組 實(shí)例分析一#include using namespace std;double avrg( )double x=0.0;for(int i=0;in;i+)x+=ai;return x/n;void main()int a3=2,7,10,b5=3,12,5,6,8;coutavrg(3,a), avrg(5,b)endl;1、分析程序的運(yùn)行結(jié)果2、填空int n,int a第10頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)11數(shù)組 實(shí)例分析二#include using namespace std;void RowSum(int A4, in

7、t nrow)for (int i=0; inrow; i+)for(int j=1; j4; j+)Ai0+=Aij; void main( )int Table34 = 1,2,3,4,2,3,4,5,3,4,5,6;for (int i=0; i3; i+)for (int j=0; j4; j+) coutTableij ;coutendl;RowSum( );for ( i = 0; i 3; i+)coutsum of row i:Tablei0endl;1、分析程序的運(yùn)行結(jié)果2、填空Table,3第11頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)12數(shù)組 對(duì)象數(shù)組 數(shù)組元素是同一

8、個(gè)類的對(duì)象的數(shù)組 聲明 類名 數(shù)組名下標(biāo)表達(dá)式 eg: Date dates7; 引用 數(shù)組名下標(biāo).成員名 eg: dates2.year; 初始化 調(diào)用構(gòu)造函數(shù)對(duì)每個(gè)元素初始化1、如聲明數(shù)組時(shí),給每個(gè)元素初值,則調(diào)用形參類型匹配的構(gòu)造函數(shù)Date d2=Date(2010,10,11),Date(2010,9,20)2、如果聲明數(shù)組時(shí),沒指定初始值,則調(diào)用默認(rèn)構(gòu)造函數(shù)Date d2=Date(2010,10,11)第12頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)13數(shù)組 實(shí)例分析class Datepublic:Date()year=month=day=0;Date(int y,int m

9、,int d) year=y; month=m; day=d; void print()coutyear=year month=month day=dayendl;private:int year,month,day;void main()Date d5=Date(2010,10,1),Date(2010,10,2),Date(2010,10,3);d3=Date(2010,10,4);d4=Date(2010,10,5);for(int i=0;i5;i+)di.print();1、分析程序的運(yùn)行結(jié)果2、修改后分析第13頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)14指針 內(nèi)存的地址 內(nèi)存中

10、存儲(chǔ)單元的編號(hào) 存儲(chǔ)器中的一個(gè)字節(jié)稱為一個(gè)存儲(chǔ)單元 每個(gè)存儲(chǔ)單元都有一個(gè)唯一的地址 計(jì)算機(jī)中所有的數(shù)據(jù)都是存放在內(nèi)存單元中的 變量的地址 如定義了變量,編譯時(shí)為該變量分配內(nèi)存單元 變量所占用內(nèi)存空間的第一個(gè)字節(jié)的地址第14頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)15指針 數(shù)據(jù)在內(nèi)存中的存儲(chǔ)、讀取過程例如:整型變量 i , j , k ; 在編譯時(shí)為變量分配內(nèi)存,內(nèi)存示意圖如圖所示 假設(shè)變量 i,j,k 被分配的內(nèi)存地址分別為2000,2002,2004 給變量賦值為 i=3; j=6; k=9; 直接訪問:直接存取變量所占內(nèi)存單元的內(nèi)容內(nèi)存中用戶數(shù)據(jù)區(qū)2000200220043010內(nèi)存地

11、址編號(hào)ijk。369如果讀取變量 i的值,直接到為變量i分配的存儲(chǔ)單元(2000、2001字節(jié))中取出i的值(3)即可間接訪問:首先取出存放該變量的內(nèi)存單元的地址,然后再從該地址中取出相應(yīng)內(nèi)容先將變量 i 的地址存放在另一個(gè)變量p中,如果讀取變量 i的值,先找到變量p,從p中取出內(nèi)容(2000,即變量i的起始地址),然后到2000、2001字節(jié)中取出i的值(3)2000變量P第15頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)16指針 指針變量的聲明 變量的指針變量的地址 指針變量:存放另一變量地址的變量 指針變量的值是內(nèi)存地址 聲明 數(shù)據(jù)類型 *指針名 *表示這里聲明的是指針類型的變量 數(shù)據(jù)類

12、型可以是任意類型,所指向?qū)ο蟮念愋?指針本身的值默認(rèn)類型是unsigned long integ : int * pointer;第16頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)17指針 與地址相關(guān)的運(yùn)算符“ *”和“&” &地址運(yùn)算符:例:int var; 則&var 表示變量var在內(nèi)存中的起始地址引用例:int &var; *指針標(biāo)識(shí)符:例:int a=1,*ip; 指針運(yùn)算符:*ip=a; 則*ip表示指針?biāo)赶蜃兞縜的值。第17頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)18指針 指針的賦值 指針必須先賦值后引用 聲明指針的同時(shí)進(jìn)行初始化賦值 數(shù)據(jù)類型 *指針名=初始地址;int

13、i;int *p=&i; 聲明之后,單獨(dú)使用賦值語句 指針名=地址;int i,*p;p=&i;例:6_5第18頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)19指針 指針的賦值 可以聲明指向常量的指針,不能通過指針改變所指對(duì)象的值,但指針本身可改變,可指向另外的對(duì)象。 可以聲明指針類型的常量,這時(shí)指針本身的值不能改變。 指針的值只能賦給相同類型的指針,但void類型的指針可存儲(chǔ)任何類型的對(duì)象地址。int a=3,b=5;const int *p=&a;p=&b;*p=8;Xint a=3,b=5;int *const p2=&a;p2=&b;Xvoid *pv;int *pint,i=9;pv

14、=&i;pint=(int *)pv;第19頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)20指針 指針的運(yùn)算 算術(shù)運(yùn)算 指針與整數(shù)的加減運(yùn)算 指針相減運(yùn)算 指針加1和減1運(yùn)算p+(-)nn:相對(duì)于指針?biāo)府?dāng)前位置的位移量含義:使指針指向當(dāng)前所指位置前面或后面第n個(gè)數(shù)據(jù)的位置實(shí)際內(nèi)存地址值:(p)+/-n*sizeof(指針數(shù)據(jù)類型)如果p,q指向同一數(shù)組成員,則p-q表示兩者之間元素個(gè)數(shù)指針加1:指向后一個(gè)數(shù)據(jù)的位置指針減1:指向前一個(gè)數(shù)據(jù)的位置第20頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)21指針 指針的運(yùn)算 關(guān)系運(yùn)算,=,=,!=例如p和q是相同類型的指針變量pq:若為真,則p所指目標(biāo)

15、變量在q所指目標(biāo)變量之前 若為假,則p所指目標(biāo)變量在q所指目標(biāo)變量之后第21頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)22指針 用指針處理數(shù)組元素聲明與賦值 例: int a10, *pa; pa=&a0; 或 pa=a;通過指針引用數(shù)組元素 *pa就是a0,*(pa+1)就是a1,. ,*(pa+i)就是ai。 ai, *(pa+i), *(a+i), pai都是等效的。 不能寫 a+,因?yàn)閍是數(shù)組首地址是常量。第22頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)23指針 用指針處理數(shù)組元素 例:設(shè)有一個(gè)int型數(shù)組a,有10個(gè)元素,用三種方法輸出各元素。 方法一:使用數(shù)組名和下標(biāo)ai 方法

16、二:使用數(shù)組名和指針運(yùn)算*a+i 方法三:使用指針變量*p見例6_7第23頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)24指針 指針數(shù)組 數(shù)組的每個(gè)元素都是指針變量 數(shù)組元素都必須是同一類型的指針 聲明 類型 *數(shù)組名下標(biāo)表達(dá)式int *p3由p0,p1,p2三個(gè)指針組成第24頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)25指針 指針數(shù)組例:用指針數(shù)組存放單位矩陣#include using namespace std;void main()int line1=1,0,0; int line2=0,1,0; int line3=0,0,1; int *p_line3;p_line0=line1

17、;p_line1=line2;p_line2=line3;/輸出單位矩陣 coutMatrix test:endl;for(int i=0;i3;i+) for(int j=0;j3;j+) coutp_lineij ; coutendl;第25頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)26指針 用指針作為函數(shù)參數(shù)使實(shí)參與形參指針指向共同的內(nèi)存空間減少函數(shù)調(diào)用時(shí)數(shù)據(jù)傳遞的開銷例:讀入三個(gè)浮點(diǎn)數(shù),將整數(shù)部分和小數(shù)部分分別輸出方法一:用指針做函數(shù)的形參(例6_10)方法二:用引用做函數(shù)的形參(例6_10_1)第26頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)27指針 用指針作為函數(shù)參數(shù)方法一:用

18、指針做函數(shù)的形參#include using namespace std;/指針做為函數(shù)的形參void splitfloat( )*intpart = int(x);*fracpart = x-*intpart;方法二:用引用做函數(shù)的形參float x, int *intpart, float *fracpartfloat x, int &intpart, float &fracpartintpart = int(x);fracpart = x-intpart;第27頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)28指針 用指針作為函數(shù)參數(shù)void main()float x,f;int n;c

19、outenter 3 float number:endl;for(int i=0;ix;splitfloat( x, &n, &f );coutinteger=n,fraction=f成員名例如:Point *p,p1; p=&p1; p-getx() 相當(dāng)于 (*p).getx();第31頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)32指針 對(duì)象指針對(duì)象指針舉例int main() Point A(5,10); Point *ptr; ptr=&A; coutGetX()endl; coutA.GetX()*類成員指針名第35頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)36指針 對(duì)象指針 指

20、向類的非靜態(tài)成員的指針 指向成員函數(shù)的指針賦值指針名=&類名:函數(shù)成員名引用(對(duì)象名.* 類成員指針名)(參數(shù)表)或: (對(duì)象指針名*類成員指針名)(參數(shù)表)eg6_1第36頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)37指針 對(duì)象指針訪問對(duì)象的公有成員函數(shù)的不同方式void main()/主函數(shù)Point A(4,5);/聲明對(duì)象APoint *p1=&A;/聲明對(duì)象指針并初始化 int (Point:*p_GetX)()=Point:GetX; /聲明成員函數(shù)指針并初始化 coutA.GetX()endl; /使用對(duì)象名訪問成員函數(shù)coutGetX)()endl; /使用對(duì)象指針訪問成員函

21、數(shù) cout(A.*p_GetX)()endl; /使用成員函數(shù)指針訪問成員函數(shù) 第37頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)38指針 對(duì)象指針 指向類的靜態(tài)成員的指針對(duì)類的靜態(tài)成員的訪問不依賴于對(duì)象可以用普通的指針來指向和訪問靜態(tài)成員例6-14(P184)通過指針訪問類的靜態(tài)數(shù)據(jù)成員例6-15(P185)通過指針訪問類的靜態(tài)成員函數(shù)第38頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)39動(dòng)態(tài)內(nèi)存分配 動(dòng)態(tài)內(nèi)存分配技術(shù)在程序運(yùn)行中按照實(shí)際需要申請(qǐng)適量?jī)?nèi)存 使用結(jié)束后可以釋放 存儲(chǔ)和釋放的存儲(chǔ)單元稱為堆對(duì)象 申請(qǐng)-建立 釋放-刪除第39頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)40動(dòng)態(tài)內(nèi)存

22、分配 new運(yùn)算和delete運(yùn)算 new:動(dòng)態(tài)分配內(nèi)存 new 類型T (初值列表); 功能:在程序執(zhí)行期間,申請(qǐng)用于存放T類型對(duì)象的內(nèi)存空間,并依初值列表賦以初值。 結(jié)果值:成功:T類型的指針,指向新分配的內(nèi)存的首地址。失敗:0(NULL)第40頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)41動(dòng)態(tài)內(nèi)存分配 new運(yùn)算和delete運(yùn)算 delete:刪除由new建立的對(duì)象,釋放指針?biāo)赶虻膬?nèi)存空間 delete 指針p;功能:釋放指針P所指向的內(nèi)存。P必須是new操作的返回值。注意:用new建立的對(duì)象,只能使用delete進(jìn)行一次刪除操作。動(dòng)態(tài)創(chuàng)建對(duì)象:6_16第41頁,共56頁。面向?qū)ο?/p>

23、程序設(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)42動(dòng)態(tài)內(nèi)存分配 動(dòng)態(tài)創(chuàng)建對(duì)象數(shù)組 使用運(yùn)算符new可以創(chuàng)建數(shù)組類型的對(duì)象 語法: new 類型名T下標(biāo)表達(dá)式; 動(dòng)態(tài)為數(shù)組分配內(nèi)存時(shí)不能指定數(shù)組元素的初值 如果用new建立的數(shù)組,用delete刪除時(shí)在指針名前加“” delete 指針名動(dòng)態(tài)創(chuàng)建對(duì)象數(shù)組例6_17第42頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)43動(dòng)態(tài)內(nèi)存分配 動(dòng)態(tài)內(nèi)存分配與釋放函數(shù)動(dòng)態(tài)存儲(chǔ)分配函數(shù) 原型: void *malloc( size ); 參數(shù)size:欲分配的字節(jié)數(shù) 返回值:成功,則返回void型指針。失敗,則返回空指針。 頭文件: 和 或和第43頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)

24、大學(xué)44動(dòng)態(tài)內(nèi)存分配 動(dòng)態(tài)內(nèi)存分配與釋放函數(shù)動(dòng)態(tài)內(nèi)存釋放函數(shù)原型: void free( void *memblock );參數(shù)memblock: 指針,指向需釋放的內(nèi)存。頭文件: 和 或和第44頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)45字符串 字符串常量 一對(duì)雙引號(hào)括起來的字符序列,例如:china“ 按串中字符的排列次序順序存放 每個(gè)字符占一個(gè)字節(jié),末尾以0作為結(jié)尾標(biāo)記 存儲(chǔ)和處理字符串?dāng)?shù)據(jù) 字符數(shù)組 string類第45頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)46字符串 用字符數(shù)組存儲(chǔ)和處理字符串 字符數(shù)組 數(shù)組元素是char型的數(shù)組 一維數(shù)組存放一個(gè)字符串 多維數(shù)組存放多個(gè)字

25、符串char s14=a,b,c,d;char s25=a,b,c,d,0;char s25=abcd;char s25=abcde;char s2=abcde; char ss34=a,b,c,0,m,n,p,0,x,y,z,0;char ss34=abc,mnp,xyz;char ss4=abc,mnp,xyz;X第46頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)47字符串 用字符數(shù)組存儲(chǔ)和處理字符串 用字符數(shù)組存放字符串 輸入和輸出逐個(gè)輸入、輸出整個(gè)字符串一次輸入或輸出 注意輸出字符不包括 0輸出字符串時(shí),輸出項(xiàng)是字符數(shù)組名,輸出時(shí)遇到0結(jié)束。輸入多個(gè)字符串時(shí),以空格分隔;輸入單個(gè)字符串

26、時(shí)其中 不能有空格。char c =china;for(int i=0;i5;i+)coutci;coutstr1str2str3; 運(yùn)行時(shí)輸入數(shù)據(jù): How are you?內(nèi)存中變量狀態(tài)如下: str1: H o w 0 str2: a r e 0 str3: y o u ? 0第48頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)49字符串 用字符數(shù)組存儲(chǔ)和處理字符串用字符數(shù)組存放字符串若改為: static char str13; cinstr; 運(yùn)行時(shí)輸入數(shù)據(jù): How are you?內(nèi)存中變量 str 內(nèi)容如下: str: H o w 0 第49頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工

27、業(yè)大學(xué)50字符串 用字符數(shù)組存儲(chǔ)和處理字符串用字符數(shù)組存放字符串字符串處理函數(shù)strcat(連接)strcpy (復(fù)制)strcmp (比較)strlen (求長(zhǎng)度)strlwr (轉(zhuǎn)換為小寫)strupr (轉(zhuǎn)換為大寫) 包含頭文件cstring第50頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)51字符串 string類 提供了對(duì)字符串進(jìn)行處理所需要的操作 需包含頭文件string 封裝了串的屬性及訪問屬性的服務(wù)查找、分配、連接、追加 聲明: string 字符串變量名;第51頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)52字符串 string類 構(gòu)造函數(shù)原型string();/建立一個(gè)長(zhǎng)度

28、為0的串string(const string &s);/拷貝初始化構(gòu)造函數(shù)string(const char *s);/用指針s所指向的字符串初始化string類對(duì)象string(const string &s,unsigned int pos,unsigned int n);/將對(duì)象s中的串從位置pos開始取n個(gè)字符,用來初始化string類對(duì)象string(const char *s,unsigned int n);/用指針s所指向的字符串中的前n個(gè)字符初始化string類對(duì)象string(unsigned int n,char c);/將參數(shù)c中的字符重復(fù)n次,用來初始化string類的對(duì)象第52頁,共56頁。面向?qū)ο蟪绦蛟O(shè)計(jì)內(nèi)蒙古工業(yè)大學(xué)53字符串 string類 常用成員函數(shù)string append(const char *s);/

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論