c语⾔字符数组ltlt,c语⾔结构体中的⼀个char数组怎么赋值?匿名⽤户
1级
2012-06-23 回答
(1)⽤字符常量逐个初始化数组。例如:
char a[8]={'i','l','o','v','e','y','o','u'};
把8个字符依次分别赋给c[0]~c[7]这8个元素。
如果在定义字符数组时不进⾏初始化,则数组中各元素的值是不可预料的。如果花括号中提供的初值个数(即字符个数)⼤于数组长度,则出现语法错误。
如果初值个数⼩于数组长度,则只将这些字符赋给数组中前⾯那些元素,其余的元素⾃动定为空字符(即'\0')。
如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会⾃动根据初值个数确定数组长度。
例如:char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m'};
这时c数组的长度⾃动定为9。也可以定义和初始化⼀个⼆维字符数组,例如:
char diamond[5][5]={{'','','#'},{'','#','','#'},{'#','','','','#'},
{'','#','','#'},{'','','#'}};⽤它代表⼀个菱形的平⾯图形。
(2)字符串常量初始化数组。例如:
char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m'};
可写为:char c[]={"C program"};
或去掉{}写为:char c[]="C program";
注意:此时数组c的长度不是9,⽽是10。因为字符串常量的最后由系统加上⼀个'\0'。上⾯的初始化与下⾯的初始化等价。
char c[]={‘c’,‘’,‘p’,‘r’,‘o','g','r','a','m','\0'};
扩展资料:
其定义的⼀般形式是: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<i>=getchar();
⽤scanf()赋值:
for(i=0;i<10;i++)
scanf("%c",&a<i>);
(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<i>=putchar();
⽤printf()赋值:
for(i=0;i<10;i++)
数组全部赋值为1
printf("%c",a<i>);
输出结果为:
c program
(2)⽤printf()的'%s'格式对数组赋值。还是对于数组a[10];
printf("%s",a);
输出结果为:
c program
参考资料:
百度百科——字符数组

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。