字符串?dāng)?shù)組的定義是什么 字符串?dāng)?shù)組是怎樣輸入輸出的
??字符串?dāng)?shù)組的定義是什么
??用來存放字符數(shù)據(jù)的數(shù)組稱為字符數(shù)組。字符數(shù)組中的一個(gè)元素存放一個(gè)字符。定義字符數(shù)組的方法與定義數(shù)值型數(shù)組的方法類似。
??其定義的一般形式是:char 數(shù)組名[數(shù)據(jù)長度]
??例如:
??char c[10];
??c[0]='I'; c[1]=' '; c[2]='l'; c[3]='o'; c[4]='v'; c[5]='e'; c[6]=' '; c[7]='y'; c[8]='o'; c[9]='u';
??以上定義了c為字符數(shù)組,包含10個(gè)元素。
??由于字符型數(shù)據(jù)是以整數(shù)形式(ASCII代碼)存放的,因此也可以用整型數(shù)組來存放字符數(shù)據(jù),例如:int c[10];
??但這時(shí)每個(gè)數(shù)組元素占2個(gè)字節(jié)的內(nèi)存單元,浪費(fèi)存儲(chǔ)空間。
??字符數(shù)組也可以是二維或多維數(shù)組,例如:char c[5][10];
??即為二維字符數(shù)組。
??字符串?dāng)?shù)組是怎樣輸入輸出的
??1.字符數(shù)組的輸入
??(1)用getchar()或scanf()的'%c'格式符對(duì)數(shù)組進(jìn)行字符賦值。例如,對(duì)于數(shù)組a[10]:用getchar()賦值:
??for(i=0;i
??a[i]=getchar();
??用scanf()賦值:
??for(i=0;i
??scanf("%c",&a[i]);
??(2)用scanf()的'%s'格式對(duì)數(shù)組賦值。還是對(duì)于數(shù)組a[10]:
??scanf("%s",a);
??或
??scanf("%s“,&a[0]);
??輸入”C program“并回車時(shí),a數(shù)組會(huì)自動(dòng)包含一個(gè)以”\0“結(jié)尾的字符串”C program“。
??2.字符數(shù)組的輸出
??(1)用putchar()或printf()的‘%c’格式符對(duì)數(shù)組進(jìn)行字符賦值。例如,對(duì)于數(shù)組a[10]:用putchar()賦值:
??for(i=0;i
??a[i]=putchar();
??用printf()賦值:
??for(i=0;i
??printf("%c",a[i]);
??輸出結(jié)果為:
??c program
??(2)用printf()的'%s'格式對(duì)數(shù)組賦值。還是對(duì)于數(shù)組a[10];
??printf("%s",a);
??輸出結(jié)果為:
??c program
字符串?dāng)?shù)組的定義是什么 字符串?dāng)?shù)組是怎樣輸入輸出的
字符串?dāng)?shù)組
??字符串?dāng)?shù)組初始化
??字符數(shù)組的初始化與數(shù)值型數(shù)組初始化沒有本質(zhì)區(qū)別。但它除了可以逐個(gè)給數(shù)組元素賦予字符外,也可以直接用字符串對(duì)其初始化。
??(1)用字符常量逐個(gè)初始化數(shù)組。例如:
??char a[8]={'i','l','o','v','e','y','o','u'};
??把8個(gè)字符依次分別賦給c[0]~c[7]這8個(gè)元素。
??如果在定義字符數(shù)組時(shí)不進(jìn)行初始化,則數(shù)組中各元素的值是不可預(yù)料的。如果花括號(hào)中提供的初值個(gè)數(shù)(即字符個(gè)數(shù))大于數(shù)組長度,則出現(xiàn)語法錯(cuò)誤。如果初值個(gè)數(shù)小于數(shù)組長度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元素自動(dòng)定為空字符(即'\0')。如果提供的初值個(gè)數(shù)與預(yù)定的數(shù)組長度相同,在定義時(shí)可以省略數(shù)組長度,系統(tǒng)會(huì)自動(dòng)根據(jù)初值個(gè)數(shù)確定數(shù)組長度。例如:
??char c[ ]={‘c’,‘ ’,‘p’,‘r’,‘o','g','r','a','m'};
??這時(shí)c數(shù)組的長度自動(dòng)定為9。
??也可以定義和初始化一個(gè)二維字符數(shù)組,例如:
??char diamond[5][5]={{' ',' ','#'},{' ','#',' ','#'},
??{'#',' ',' ',' ','#'},{' ','#',' ','#'},{' ',' ','#'}};用它代表一個(gè)菱形的平面圖形。
??(2)字符串常量初始化數(shù)組。例如:
??char c[ ]={‘c’,‘ ’,‘p’,‘r’,‘o','g','r','a','m'};
??可寫為:
??char c[ ]={"C program"};
??或去掉{}寫為:
??char c[ ]="C program";
??注意:此時(shí)數(shù)組c的長度不是9,而是10。因?yàn)樽址A康淖詈笥上到y(tǒng)加上一個(gè)'\0'。上面的初始化與下面的初始化等價(jià)。
??char c[ ]={‘c’,‘ ’,‘p’,‘r’,‘o','g','r','a','m','\0'}。
??字符串?dāng)?shù)組的定義是什么、字符串?dāng)?shù)組是怎樣輸入輸出的都看清楚了吧!看完是不是覺得技術(shù)這門工作很不容易呢!如果喜歡這篇文章,來新網(wǎng)關(guān)注下吧!
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)
送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)
需注明出處:新網(wǎng)idc知識(shí)百科