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语言 将输入整数转换成字符串输出的主要内容,如果未能解决你的问题,请参考以下文章