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';
-------------------------------------------------------------------
char b[10]={"abcxsdfg"};
-------------------------------------------------------------------
char a[8]={'i','e','o','d','e','b','o','u'};
-------------------------------------------------------------------
char a[11];//輸入輸出
for(i=0;i<10;i++)→ for(i=0;i<10;i++)
a[i]=getchar();//一個(gè)一個(gè)賦值 ----- putchar(a[i]);//一個(gè)一個(gè)輸出
-------------------------------------------------------------------
for(i=0;i<10;i++)→ for(i=0;i<10;i++)
scanf("%c",&a[i]);//一個(gè)一個(gè)賦值 ----- printf("%c",a[i]);//一個(gè)一個(gè)輸出
-------------------------------------------------------------------
scanf("%s",a);//這個(gè)一下輸入一串字符;空格,回車(chē)作為分隔符;
printf("%s",a);//這個(gè)一下輸出一串字符;
-------------------------------------------------------------------
gets(a);//這個(gè)一下輸入一串字符;只有回車(chē)作為分隔符;
puts(a);//只有用gets();輸入才可以用puts();
1 列出數組所有元素值進(jìn)行初始化,比如,下面的列出了4個(gè)元素所有值
int a[4] = {1,2,3,4};
2 初始化數量少于元素數量,比如下面的數組有4個(gè)元素,但只給了兩個(gè)初始值
int a[4] = {1,2};
等價(jià)于 int a[4] = {1,2, 0, 0};
3 不指定數組維數初始化
int a[] = {1,2,3,4};
4 特殊情況, 字符數組初始化
char x[5] = "abcd";
等價(jià)于 char x[5] = {'a', 'b', 'c', 'd', '\0'};
1、直接逐個(gè)初始化字符數組:
字符數組的初始化,最容易理解的方式就是逐個(gè)字符賦給數組中各元素。
1
char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};
注意:如果花括號中提供的字符個(gè)數大于數組長(cháng)度,則按語(yǔ)法錯誤處理;若小于數組長(cháng)度,則只將這些字符數組中前面那些元素,其余的元素自動(dòng)定為空字符(即'\0' )。
2、用字符串常量來(lái)初始化字符數組:
在c語(yǔ)言中,將字符串作為字符數組來(lái)處理。因此可以使用字符串來(lái)初始化字符數組。
1
char str[]={"I am happy"};
也可以省略花括號。
1
char str[]="I am happy";
但是,上述這種字符數組的整體賦值只能在字符數組初始化時(shí)使用,不能用于字符數組的賦值,字符數組的賦值只能對其元素一一賦值,下面的賦值方法是錯誤的。
1
2
char str[];
str="I am happy";//錯誤,字符數組的賦值只能按元素一一賦值
可以的:
#include<string>
#include<iostream>
using namespace std;
void main()
{ string str[3]={"a","123","e1ghi"};
int i;
for ( i=0;i<3;i++ ) cout<<str[i]<<endl;
}
字符數組的初始化與數值型數組初始化沒(méi)有本質(zhì)區別。但它除了可以逐個(gè)給數組元素賦予字符外,也可以直接用字符串對其初始化。
(1)用字符常量逐個(gè)初始化數組。例如:
char a[8]={'i','l','o','v','e','y','o','u'};
用逐個(gè)初始化的方法與數值型數組初始化本質(zhì)上是一樣的,同樣也可以進(jìn)行完全賦初值及不完全賦初值,但是不完全賦值時(shí)沒(méi)有賦值的元素被賦為空格。
當對全體元素賦初值時(shí)也可以省去長(cháng)度說(shuō)明。例如:
char c[ ]={'c',' ','p','r','o','g','r','a','m'};
這時(shí)C數組的長(cháng)度自動(dòng)定為9。
(2)字符串常量初始化數組。例如:
char c[ ]={'c',' ','p','r','o','g','r','a','m'};
可寫(xiě)為:
char c[ ]={"C program"};
或去掉{}寫(xiě)為:
char c[ ]="C program";
空格算字符的,不過(guò)你寫(xiě)的是空字符。。既然空格算字符了(空字符也占一個(gè)空間) 那么有十二個(gè)字母就越界了。。
這樣的初始化是合法的 不過(guò)一定不要超過(guò)設置的最大長(cháng)度。。。
如果不等于而是小于 那么剩下的就是隨機的。。
如果首先不設置限制的話(huà),那么系統會(huì )自動(dòng)統計個(gè)數。
就是這樣也可以char str2[]={'a',' ','b','c','d','e','f','g','h','i','j','k','l'};
樓上說(shuō)的結束符不加也是可以的,只是為了輸出等用途的時(shí)候,可以不用考慮數組長(cháng)度
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.631秒