例如,输入123,应输出字符串“123”。n的位数不确定,可以是任意位数的整数
#include <stdio.h>
#include <string.h>
//n是需要转换的数
void trans(int n,char buf[])
{
int i = 0;
if(n<10 && n > 0)
{
for(i=strlen(buf);i>0;i--)
buf[i] = buf[i-1];
buf[0] = '0' + n%10;
return;
}else
{
for(i=strlen(buf);i>0;i--)
buf[i] = buf[i-1];
buf[0] = '0' + n%10;
trans(n/10,buf);
}
}
int main()
{
int v;
char buf[50]={0}; //必须初始化
printf("请输入一个数:");
scanf("%d",&v);
trans(v,buf);
printf("转换后字符串:%s\n",buf);
return 0;
}
#include <stdio.h>
#include <string.h>
void itos(char *str, int n, int index)
{
if (n == 0)
{
*(str + index) = 0; //结束字符串
int len = strlen(str) - 1;
char t;
for (int ii = 0; ii < len / 2; ii++) //翻转字符串
{
t = str[len - ii];
str[len - ii] = str[ii];
str[ii] = t;
}
return ;
}
*(str + index) = '0' + n % 10;
itos(str, n / 10, index + 1);//从后往前提取数字
return ;
}
int main()
{
int n;
char str[20];
scanf("%d", &n);
itos(str, n, 0);
printf("%s\n", str);
return 0;
}