这个是很多学生的作业题
计算机里的数据都是二进制的,不论是整数还是字符,字符串就是很多个字符的序列。
比如一个整数65,int i=65;
我们打印时用%d,%c,%x分别可以打印出十进制,ASCII字符,十六进制。
在计算机里int作类型内存中十六进制表示为0x41,ASCII码指'A'字符。
所以打印得出65,A,41
我们通过%和后面跟的dcx来控制输出,系统自动将内存中二进制相应显示。
依你的题呢,就是还打出65,但是此65是在内存中新开的内存区,其中是'6','5'两个字符。
以下是我写的简单代码,有考虑不全的地方很多,比如没考虑负数等等。
#include
int main()
{
int i=0,s[4];
int n=65;
while(n!=0)
{
s[i++]=n%10;
n=n/10;
}
i--;
while(i>=0)
{
printf("s[%d]=%d\n",i--,s[i]);
}
return 0;
}
这是我作业,你广工的吧?
我理解是:首先看问题:编写一个程序,将 整数 转换为 字符串。
目的就是要将一个整数转换为字符串
至于是什么字符串呢?前面有定语:十进制表示的字符串。
我们知道,每个字符都有对应的ASC码,有八进制和十进制
例如,字符A的十进制的字符串就是65.
至于八进制,你大可自己去换算。
因此,核心就是:将一个十进制的整数N,通过程序转换成一个十进制的字符串。
额,就是和wxy同学的一个意思,比如你输入65,输出还是65,但是这时的65是6和5两个字符连成的字符串,具体的代码我不写了,自己努力。
按我理解,就是将整数 n 转为 字符串。比如将整数 10 转为 字符串的"10 “。
#include
#include
void main()
{
int b;
scanf("%d",&b);
char buf[10];
itoa(b,buf,10);
printf("%s",buf);
}