请问C语言里面怎么将变量里面的值给一个字符数组,假如a中是1234,那么要s数组中的四个元素分别是1、2、3

、4该怎么做呢?

sprintf(s, "%d", a);追问

我试过了,但是明明是123456,单独输出数组6个元素的话,却是52 53 54...这种的

追答

因为你输出的是ASCII值,输出时要指定格式 "%c" , 你之前输出应该是"%d", 这两种输出是有差别的, c 打印的时候会将char当成字符打印, 而d 则是打印这个char的数值, 你可以理解为 (int)s[i], 即转成整数再输出。

追问

我修改后,就成这样了

追答

buffer too small, 的意思是 s数组大小不够, 把数组调大一些试试, 比如
char s[128];
你把源码贴出来吧, 要不然效率太低, 都是靠猜的。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-25
sprintf(s, "%d", a);
for(int i = 0; i < sizeof(s); i++)
{
if(s[i])s[i] -= '0';

}本回答被网友采纳
第2个回答  2015-08-25
好像有一个 itoa 函数,试一下追问

VS2013中提示C++什么的...应该是不能用这个函数吧

第3个回答  2015-08-25
一位一位取出来不就好了
相似回答