
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",可惜这个不能实现 展开
/* 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",可惜这个不能实现 展开
展开全部
char a[7]={0};
可以用strcpy赋值,但是要保证a数组的空间够大,能够放下需要赋值的字符串。
strcpy(a,"ddgh");
可以用strcpy赋值,但是要保证a数组的空间够大,能够放下需要赋值的字符串。
strcpy(a,"ddgh");
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先纠正一下,字符串“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'结束,这些都是最最基本的概念,祝好!
你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'结束,这些都是最最基本的概念,祝好!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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");
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");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于字符数组的赋值,下面两种赋值方式:
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";
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";
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a="dsfsdf"这是字符串赋值。字符都是单引号,只能一个一个赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |