C语言程序答案:将一个整数n转成字符串输出。???不用递归法,还能怎么写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序答案:将一个整数n转成字符串输出。???不用递归法,还能怎么写相关的知识,希望对你有一定的参考价值。
例如,输入整数2008,应输出字符串“2008”。n的位数不确定,可以是任意的整数
将输入的整数保存在一个int整型变量里,再使用itoa函数即可功 能: 把一整数转换为字符串
用 法: char *itoa(int value, char *string, int radix);
详细解释:itoa是英文integer to string a(将整形数转化为一个字符串,并将值保存在a中)
的缩写.其中value为要转化的整数, radix是基数的意思,即先将value转化为几进制的数,之后在保存在a 中.
作用:实现数制之间的转化
比较:ltoa,其中l是long integer(长整形数)
备注:该函数的头文件是"stdlib.h"
程序例:
#include <stdlib.h>
#include <stdio.h>
int main(void)
int number = 12345;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
追问
程序有错误
追答#include
#include
int main(void)
int number = 12345;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
cin>>n;
while(n/10)
cout<<n%10;
n= n/10;
参考技术B #include <stdio.h>
void f(int n, char* buf)
sprintf(buf,"%d",n);
实现整数转成字符串
实现整数转成字符串
题目
用 C 语言实现,将一个整数转成字符串,比如 123 转成“123”。要求不能使用 itoa 等函数。
代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * itostr(int v)
int a;
if(v < 0)
a = -v;
else
a = v;
char *str = (char*)malloc(32);
memset(str, 0, 32);
int i = 0;
while(a!=0)
int tem = a % 10;
a /= 10;
str[i++] = '0' + tem;
if(v < 0)
str[i++] = '-';
char *str2 = (char*)malloc(i);
int j = 0;
for(; j < i; j++)
str2[j] = str[i-j-1];
//printf("%c", str2[j]);
str2[j] = '\\0';
free(str);
return str2;
int main()
printf("%s\\n", itostr(123));
printf("%s\\n", itostr(-123456));
printf("%s\\n", itostr(2147483647)); // 2*31-1
return 0;
另一种取巧的方法,如果可以使用 sprintf
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * itostr(int v)
char *str = (char*)malloc(32);
memset(str, 0, 32);
sprintf(str, "%d", v);
return str;
int main()
printf("%s\\n", itostr(123));
printf("%s\\n", itostr(-123456));
printf("%s\\n", itostr(2147483647)); // 2*31-1
return 0;
测试结果相同。
以上是关于C语言程序答案:将一个整数n转成字符串输出。???不用递归法,还能怎么写的主要内容,如果未能解决你的问题,请参考以下文章
c语言中实现输入一个数字字符,然后转换成整数数字输出.怎么做?