C語言(C++)如何給字元陣列賦值
1、char c[5];
c[0]=’H’; c[1]=’e’; c[2]=’l’; c[3]=’l’; c[4]=’o’;
2、charc[5]={‘H’,’e’,’l’,’l’,’o’};
3、(1)如果在定義字元陣列時不進行初始化,則陣列中各元素的值是不可預測的;
(2)如果花括號中提供的初值個數(即字元個數)大於陣列長度,則按語法錯誤處理;
(3)如果花括號中提供的初值個數(即字元個數)小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元(即‘\0’);
4、(如何將字串賦值給字元陣列)
C語言中,將字串作為字元陣列來處理的。C語言規定了一個“字串結束標誌”,以字元’\0’作為標誌。為此,再對字元陣列初始化的方法補充一種用字串常量來使字元陣列初始化方法:
char c[] = {“Hello”};
或 char c[] =“Hello”; 注意:陣列c的長度不是5,而是6.
上面的初始化等價於:char c[5]={‘H’,’e’,’l’,’l’,’o’,’\0’};
而不等價於:charc[5]={‘H’,’e’,’l’,’l’,’o’};
5、字元陣列的輸出
char c[] ={“Hello”};
printf(“%s”,c);
6、(如何將字串賦值給字元陣列)
strcpy(字元陣列1,字串2)
eg: char str1[10]=’’, str2={“Hello”};
strcpy(str1,str2);
執行後str1狀態為:
H |
e |
l |
l |
o |
\0 |
\0 |
\0 |
\0 |
\0 |
(1)“字元陣列1”必須寫成陣列名形式(如str1),“字串2”可以是陣列名,也可以是字串常量。eg strcpy(str1, “Hello”);
(2)不能用賦值語句將一個字串常量或字元陣列直接給一個字元陣列。如下面兩句都是不合法的:str1=”Hello”;
str1=str2;
而只能用strcpy函式將一個字串複製到另一個字元陣列中去,賦值語句只能將一個字元賦給一個字元型變數或者字元陣列元素。如下面的語句是合法的:
char c[5],c1,c2;
c1=’A’;c2=’B’;
c[0]=’H’; c[1]=’e’; c[2]=’l’; c[3]=’l’; c[4]=’o’;
7、strlen函式是測試字串實際長度(不包含‘\0’在內)的函式。
char c[10]=”Hello”’
printf(“%d”,strlen(c)); 或者Printf(“%d”,“Hello”); 輸出為5