main()
{
int a[10];
int i;
char *p;
for (i = 0; i < 9; i ++)
{
a[i] = i;
}
a[i] = '\0';
p=(char *)a;
puts(p);
return 0;
}
用强制转换行不 不要直接逐个赋值
追答输出时可以强制转换
怎么强制...
.......你搞错了吧
追答原来是整数234,输出的是字符串234(puts(s);),错在何处?
追问我想问的是怎么用强制转化把一个int数组给变成一个char型数组.
而且把一个整数放到数组里可以用 sprintf 或者非标准的 atoi 函数
所以你能否用强制转化把一个int数组给变成一个char型数组.
/*
不能强制转换,整数2和字符'2'的值是不同的。
下面通过函数调用的方法转换整形数组到字符数组。
234 "234"
12 "12"
456 "456"
900 "900"
657 "657"
Press any key to continue
*/
#include
int main() {
int i,j,n,num[] = {234,12,456,900,657};
char ch,s[10];
for(j = 0; j ",num[j]);
for(n = 0; num[j]; ++n) {
s[n] = num[j] % 10 + '0';
num[j] /= 10;
}
s[n] = '\0';
for(i = 0; i < n / 2; ++i) {
ch = s[i];
s[i] = s[n - 1 - i];
s[n - 1 - i] = ch;
}
printf("\"%s\"\n",s);
}
return 0;
}
哦哦 原来问题出现在这整数2和字符'2'的值是不同的。 谢谢大神
本回答被提问者采纳