C语言关于字符串的赋值。

比如我定义3个字符串
char a[10];
char b[10];
char c[10];
然后我想把这三个字符串这样赋值:
char d[3];
d[1]=a[10];
d[2]=b[10];
d[3]=c[10];

这样,结果显然是不对的,因为前面的a[10]是个字符串,而后面的d[1]是个字符。请告诉我该怎么样赋值才能实现。 把d[3]换成二维数组?
d[10][3]???
不能用string定义,因为要用C语言做。

你要搞清一个事
char
a='b',有‘’(表示赋值的值是字符型的),所以是把字符b赋给a,char
a=
66,没有‘’,所以是把66赋给a,但是a是字符型的,所以把66转换为字符型输出(即字符B)
char
c=0x41;(16进制)
char
c=65;
(十进制)
char
c=o101;(8进制)
上面三个实际上是发生了转换
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-15
首先,char
c='\x41';
也应该得不到字符'A'
‘A’在askII中编码为
(0x41),(65),(o101)。定义char
c=‘A’,将c输出为整型的结果为65;
x41、65、o101放在单引号中就是一个语法错误,然后赋值给c,也是一个语法错误。
正确的应该是:
char
c=0x41;
char
c=65;
char
c=o101;
看看char和int的关系就知道了。
第2个回答  2019-06-29
char
string[500]="abcdefg";
这个就是说你在给一个数组赋值
但是如果你定义完数组以后又这样
string[500]="abcdefg";
就是说你在给数组里的第500个元素赋值
首先数组下标最大是499
没有500
其次
只能存放一个字符你确放了一个字符串
当然不对了
第3个回答  2019-12-03
strcpy()是字符串函数,用来进行字符串的复制,也就是说”abcdefg“被复制进P中,不管P里面原来是
什么,都会被覆盖
第二种方法,我不知道是不是存在长度的问题,对C语言的语法有点遗忘了。
但是这种语法在C#中是可以的。
第4个回答  2009-05-30
d[3]=c[10];

------------------这里错误,根本不存在d[3],数组的下标是从0开始的。

,因为前面的a[10]是个字符串,

----------------- a[10]不是字符串,是单个字符。

把d[3]换成二维数组?

-----------------C语言中变量的类型是不能改变的。本回答被提问者采纳