C语言怎样给字符数组赋值

例如
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
char a[7]="ddgh";
printf("%s",a);
}

怎样才能不在定义时赋值,例如a="dsfsdf",这样不能实现。
有什么办法,只有这样吗?
a[1]='f';a[2]='f'.............
我不是指使用者输入,是编程员在编写的时候直接写入去。像这样a="dsfsdf",可惜这个不能实现

第1个回答  推荐于2017-09-19
char a[7]={0};
可以用strcpy赋值,但是要保证a数组的空间够大,能够放下需要赋值的字符串。
strcpy(a,"ddgh");本回答被提问者采纳
第2个回答  2012-07-04
先纠正一下,字符串“china”在内存中的存放是这样的:'c''h''i''n''a''\0',多了一个'\0',表示字符串结尾
你scanf输入china,如果字符串长度是5,也就是char x[5];就是x[0]='c',x[1]='h',x[2]='i',x[3]='n',x[4]='a';
如果char x[6或是更大的数];x[0]='c',x[1]='h',x[2]='i',x[3]='n',x[4]='a',x[5]='\0'
你的问题是 :系统会以{'c','h','i','n','a'};还是以"china";呢?
如果数组长度=5,{'c','h','i','n','a'}或"china" 的0~4位是一样的;
如果数组长度大于5,等价于"china",因为x[5]='\0';而{'c','h','i','n','a'}不会初始化x[5]
懂了吧?
注意刚接触C语言,数组下标从0开始数,字符串以'\0'结束,这些都是最最基本的概念,祝好!
第3个回答  2017-03-29
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10]; strcpy(a, "hello");
第4个回答  2012-07-04
对于字符数组的赋值,下面两种赋值方式:
char x[]={'c','h','i','n','a','\0'};
char x[]="china"
是等同的。
在字符串的最后会隐藏一个标志着字符串结束的字符'\0'
不然的话,程序哪里知道输出字符串应该在输出哪一个字符后停止?
而scanf("%s",x);语句接收到输入的china会执行下面的过程:
x="china"
也就是x={'c','h','i','n','a','\0'}
内个,从上面可以见到,x要容纳6个字符,所以应该是
char x[6]="china";
第5个回答  2010-08-20
a="dsfsdf"这是字符串赋值。字符都是单引号,只能一个一个赋值

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网