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

例如/*Note:YourchoiceisCIDE*/#include"stdio.h"voidmain(){chara[7]="ddgh";printf("%s",a)... 例如
/* 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",可惜这个不能实现
展开
 我来答
百度网友ff90b2e
推荐于2017-09-19 · TA获得超过818个赞
知道小有建树答主
回答量:537
采纳率:0%
帮助的人:382万
展开全部
char a[7]={0};
可以用strcpy赋值,但是要保证a数组的空间够大,能够放下需要赋值的字符串。
strcpy(a,"ddgh");
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
根号13
2012-07-04 · TA获得超过1560个赞
知道小有建树答主
回答量:70
采纳率:0%
帮助的人:112万
展开全部
先纠正一下,字符串“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'结束,这些都是最最基本的概念,祝好!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
檬才永8
2017-03-29 · TA获得超过304个赞
知道小有建树答主
回答量:397
采纳率:100%
帮助的人:168万
展开全部
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");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dukuntai
2012-07-04 · TA获得超过263个赞
知道小有建树答主
回答量:97
采纳率:0%
帮助的人:108万
展开全部
对于字符数组的赋值,下面两种赋值方式:
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";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
490749157
2010-08-20 · TA获得超过738个赞
知道小有建树答主
回答量:276
采纳率:100%
帮助的人:344万
展开全部
a="dsfsdf"这是字符串赋值。字符都是单引号,只能一个一个赋值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式