1樓:
常用兩種措施:
在宣告結構體變數時初始化,如——
//#include "stdafx.h"//if the vc++6.0, with this line.
#include "stdio.h"
struct stu;
int main(void);//這樣初始化printf("%d %s\n",s.x,s.name);
return 0;
}向陣列裡直接拷貝字串,如——
//#include "stdafx.h"//if the vc++6.0, with this line.
#include "stdio.h"
#include "string.h"
struct stu;
int main(void)
2樓:凌亂心扉
(1)用字元常量逐個初始化陣列。例如:
char a[8]=;
把8個字元依次分別賦給c[0]~c[7]這8個元素。
如果在定義字元陣列時不進行初始化,則陣列中各元素的值是不可預料的。如果花括號中提供的初值個數(即字元個數)大於陣列長度,則出現語法錯誤。
如果初值個數小於陣列長度,則只將這些字元賦給陣列中前面那些元素,其餘的元素自動定為空字元(即'\0')。
如果提供的初值個數與預定的陣列長度相同,在定義時可以省略陣列長度,系統會自動根據初值個數確定陣列長度。
例如:char c=;
這時c陣列的長度自動定為9。也可以定義和初始化一個二維字元陣列,例如:
char diamond[5][5]=,,,
,};用它代表一個菱形的平面圖形。
(2)字串常量初始化陣列。例如:
char c=;
可寫為:char c=;
或去掉{}寫為:char c="c program";
注意:此時陣列c的長度不是9,而是10。因為字串常量的最後由系統加上一個'\0'。上面的初始化與下面的初始化等價。
char c=;
其定義的一般形式是:char陣列名[資料長度]
例如: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為字元陣列,包含10個元素。
由於字元型資料是以整數形式(ascii**)存放的,因此也可以用整型陣列來存放字元資料,例如:
int c[10];
但這時每個陣列元素佔2個位元組的記憶體單元,浪費儲存空間。
字元陣列也可以是二維或多維陣列,例如:
char c[5][10];
即為二維字元陣列。
初始化字元陣列的初始化與數值型陣列初始化沒有本質區別。但它除了可以逐個給陣列元素賦予字元外,也可以直接用字串對其初始化。
輸入輸出
字元陣列的輸入
(1)用getchar()或scanf()的'%c'格式符對陣列進行字元賦值。例如,對於陣列a[10]:用getchar()賦值:
for(i=0;i<10;i++)
a=getchar();
用scanf()賦值:
for(i=0;i<10;i++)
scanf("%c",&a);
(2)用scanf()的'%s'格式對陣列賦值。還是對於陣列a[10]:
scanf("%s",a);
或scanf("%s「,&a[0]);
輸入」c program「並回車時,a陣列會自動包含一個以」\0「結尾的字串」c program「。
字元陣列的輸出
(1)用putchar()或printf()的『%c』格式符對陣列進行字元賦值。例如,對於陣列a[10]:用putchar()賦值:
for(i=0;i<10;i++)
a=putchar();
用printf()賦值:
for(i=0;i<10;i++)
printf("%c",a);
輸出結果為:
c program
(2)用printf()的'%s'格式對陣列賦值。還是對於陣列a[10];
printf("%s",a);
輸出結果為:
c program
3樓:禮浦業雲韶
好吧,比如:
struct
emu=
那麼對char
ch賦值可以
for(j=0;j<=49;j++)
emu.ch[j]=j;
或者一個字元一個字元的賦值,比如emu.ch[0]='a';
對字串的賦值不能直接等於,要用函式strcpy,
4樓:匿名使用者
st.name="123"; 非法,常量字串不能直接賦值給字元陣列,因為st.name 地址是確定的,不能再改了。
char name[10]="123";可以的,定義時,進行初始化字元陣列。
5樓:匿名使用者
可以用string.h,標頭檔案裡面的strcpy()函式,拷貝
c語言結構體的定義及使用,C語言 結構體的定義及使用
額 你的初始化有錯誤 yinkailin.name yinkailin 這樣初始化是不行滴 加標頭檔案 include 然後這樣初始化 strcpy yinkailin.name,yinkailin 不是結構體的問題,是陣列的問題 char name tom 正確 定義並初始化char name 2...
c結構體陣列的定義賦值與使用,C中如何定義一個結構體陣列,怎麼賦值使用
你應該是少傳了一個頁數的引數,比如頁數為1時查詢資料庫1 10條資料,為2時查詢11 20條資料 定義 一個類,比較好 c 中如何定義一個結構體陣列,怎麼賦值使用 public struct gnss gnss gnss new gnss 24 gnss 0 lon sss 在你原有的結構體裡面加上...
C,C 中關於char以及char陣列的問題
1.因為 iostream內部 cin cout 對char 做了特殊處理.因為c c 輸入輸出字串通常要用到char 如果直接輸出地址,就要用別的方法來輸出字串了 就不方便了.所以直接輸出地址 那裡放著的字串.3 sizeof hello 得到 字串實際長度 0 佔的一個位元組 一般用strlen...