C语言 将输入整数转换成字符串输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 将输入整数转换成字符串输出相关的知识,希望对你有一定的参考价值。

在这里先假设n的值为123。
*s = '0'+i%10; i%10相当于取i取的个位数,即数字3. 字符0 加上 整数3就是字符3.(这个要弄明白哦)。所以字符s的字为3.
itoa(i/10,s-1); i/10即 123/10 = 12. 迭代函数, 字符指针s后退一位,s-1 = 2;
同理推出 s-2 = 1.itoa(n,str+5); str的长度是7。
即:str[0],str[1],str[2],str[3],str[4],str[5],str[6].
str + 5 即把地址指向 str[5].
看函数itoa(),
n为 123 时
str[0] = '';
str[1] = '';
str[2] = '';
str[3] = '1';
str[4] = '2';
str[5] = '3';
str[6] = '';
参考技术A #include
#include

main()
int
x,n,k,i,z,y;
char
a[100];
scanf("%d",&x);
for(n=0;;n++)
for(定义值;条件;增量
)
if(pow(10,n)<=x&&pow(10,n+1)>x)
y=n;
goto
fuzhi;
fuzhi:
a[0]='\0';
for(n=y;n>=0;n--)
k=x/pow(10,n);
x-=k*pow(10,n);
for(i=0;i<=y;i++)
if(a[i]=='\0')a[i]=k+48;
printf("%s\n",a);
错误太多了
再有转换只能由字符到整
不能倒过来
参考技术B 改你的代码真是太麻烦了,你看看哪些地方修改了吧。前面的define
pow是编译器不同造成的。
#include
#include
int
power(int
a,
int
n)

return
pow((double)a,
n);

#define
pow
power
int
main()

int
x,
n,
k,
i,
z,
y;
char
a[100]
=
;
//清零
scanf("%d",&x);
for(n=0;;n++)

if(pow(10,
n)
<=
x
&&
pow(10,n+1)
>
x)

y
=
n;
break;
//goto
fuzhi;


//fuzhi:
//a[0]='\0';
for(n=y;
n>=0;
n--)

k
=
x/pow(10,
n);
x
-=
k*pow(10,
n);
for(i=0;
i<=y;
i++)

if(a[i]
==
'\0')

a[i]
=
k+'0'/*48*/;
break;



printf("%s\n",
a);
return
0;

ZZNUOJ_用C语言编写程序实现1141:进制转换(附完整源码)

题目描述

将十进制整数n转换成二进制,并保存在字符数组中,最后输出。

输入

输入一个非负整数n,n<2^31。

输出

输出一个01字符串,即n对应的二进制数,不含前导0。输出占一行。

样例输入

13

样例输出

1101

提示

字符串逆置函数 strrev() 在本平台上无法编译。

完整源码:

#include<stdio.h>
main()

以上是关于C语言 将输入整数转换成字符串输出的主要内容,如果未能解决你的问题,请参考以下文章

C语言 将一个整数转换成一个字符串

C语言问题 将输入数字的转换成中文

c语言中如何将字符串转化成整数型并输出?

c语言中如何将字符串转化成整数型并输出?

把字符串转换成整数

C语言:用递归法讲一个整数n转换成字符串。例如输入483,应输出字符串“483”,n的位数不定,为任意位数整