c語言結(jié)構(gòu)體中的一個char數(shù)組怎么賦值?

c語言結(jié)構(gòu)體中的一個char數(shù)組怎么賦值?

(1)用字符常量逐個初始化數(shù)組。例如:
char a[8]={\’i\’,\’l\’,\’o\’,\’v\’,\’e\’,\’y\’,\’o\’,\’u\’};
把8個字符依次分別賦給c[0]~c[7]這8個元素。

如果在定義字符數(shù)組時不進行初始化,則數(shù)組中各元素的值是不可預料的。

如果花括號中提供的初值個數(shù)(即字符個數(shù))大于數(shù)組長度,則出現(xiàn)語法錯誤。
如果初值個數(shù)小于數(shù)組長度,則只將這些字符賦給數(shù)組中前面那些元素,其余的元素自動定為空字符(即\’\\0\’)。
如果提供的初值個數(shù)與預定的數(shù)組長度相同,在定義時可以省略數(shù)組長度,系統(tǒng)會自動根據(jù)初值個數(shù)確定數(shù)組長度。
例如:char c[]={‘c’,‘’,‘p’,‘r’,‘o\’,\’g\’,\’r\’,\’a\’,\’m\’};
這時c數(shù)組的長度自動定為9。

也可以定義和初始化一個二維字符數(shù)組,例如:
char diamond[5][5]={{\’\’,\’\’,\’#\’},{\’\’,\’#\’,\’\’,\’#\’},{\’#\’,\’\’,\’\’,\’\’,\’#\’},
{\’\’,\’#\’,\’\’,\’#\’},{\’\’,\’\’,\’#\’}};用它代表一個菱形的平面圖形。
(2)字符串常量初始化數(shù)組。例如:
char c[]={‘c’,‘’,‘p’,‘r’,‘o\’,\’g\’,\’r\’,\’a\’,\’m\’};
可寫為:char c[]={\”C program\”};
或去掉{}寫為:char c[]=\”C program\”;
注意:此時數(shù)組c的長度不是9,而是10。

因為字符串常量的**由系統(tǒng)加上一個\’\\0\’。上面的初始化與下面的初始化等價。
char c[]={‘c’,‘’,‘p’,‘r’,‘o\’,\’g\’,\’r\’,\’a\’,\’m\’,\’\\0\’};

擴展資料:
其定義的一般形式是: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個元素。

由于字符型數(shù)據(jù)是以整數(shù)形式(ASCII代碼)存放的,因此也可以用整型數(shù)組來存放字符數(shù)據(jù),例如:
int c[10];
但這時每個數(shù)組元素占2個字節(jié)的內(nèi)存單元,浪費存儲空間。
字符數(shù)組也可以是二維或多維數(shù)組,例如:
char c[5][10];
即為二維字符數(shù)組。
初始化
字符數(shù)組的初始化與數(shù)值型數(shù)組初始化沒有本質(zhì)區(qū)別。

但它除了可以逐個給數(shù)組元素賦予字符外,也可以直接用字符串對其初始化。
輸入輸出
字符數(shù)組的輸入
(1)用getchar()或scanf()的\’%c\’格式符對數(shù)組進行字符賦值。例如,對于數(shù)組a[10]:用getchar()賦值:
for(i=0;i<10;i++)
a<i>=getchar();
用scanf()賦值:
for(i=0;i<10;i++)
scanf(\”%c\”,&a<i>);
(2)用scanf()的\’%s\’格式對數(shù)組賦值。還是對于數(shù)組a[10]:
scanf(\”%s\”,a百科);

scanf(\”%s“,&a[0]);
輸入”C program“并回車時,a數(shù)組會自動包含一個以”\\0“結(jié)尾的字符串”C program“。

字符數(shù)組的輸出
(1)用putchar()或printf()的‘%c’格式符對數(shù)組進行字符賦值。例如,對于數(shù)組a[10]:用putchar()賦值:
for(i=0;i<10;i++)
a<i>=putchar();
用printf()賦值:
for(i=0;i<10;i++)
printf(\”%c\”,a<i>);
輸出結(jié)果為:
c program
(2)用printf()的\’%s\’格式對數(shù)組賦值。

char[]數(shù)組該如何賦值

定義一個數(shù)組char a[10];怎么給這個數(shù)組賦值呢?1、定義的時候直接用字符串賦值char a[10]=\”hello\”;注意:不能先定義再給它賦值,如char a[10]; a[10]=\”hello\”;這樣是錯誤的!2、對數(shù)組中字符逐個賦值char a[10]={\’h\’,\’e\’,\’l\’,\’l\’,\’o\’};3、利用strcpychar a[10]; strcpy(a, \”hello\”);易錯情況:1、char a[10]; a[10]=\”hello\”;//一個字符怎么能容納一個字符串?況且a[10]也是不存在的!2、char a[10]; a=\”hello\”;//這種情況容易出現(xiàn),a雖然是指針,但是它已經(jīng)指向在堆棧中分配的10個字符空間,現(xiàn)在這個情況a又指向數(shù)據(jù)區(qū)中的hello常量,這里的指針a出現(xiàn)混亂,不允許!main() { char s[30]; strcpy(s, \”Good News!\”); /*給數(shù)組賦字符串*/ . } 上面程序在編譯時, 遇到char s[30]這條語句時, 編譯程序會在內(nèi)存的某處留出連續(xù)30個字節(jié)的區(qū)域, 并將**個字節(jié)的地址賦給s。當遇到strcpy( strcpy 為Turbo C2.0的函數(shù))時, 首先在目標文件的某處建立一個\”Good News!/0\” 的字符串。

其中/0表示字符串終止, 終止符是編譯時自動加上的, 然后一個字符一個字符地**到s所指的內(nèi)存區(qū)域。

因此定義字符串數(shù)組時, 其元素個數(shù)至少應(yīng)該比字符串的長度多1。

怎么給char數(shù)組賦值

cha

char數(shù)組怎么賦值

如圖public?static?void?main(String[]?args)?{?char[]?charArray=new?char[]{24635,35009};?String?str=new?String(charArray);?System.out.println(str);?}