编写一个函数求将一个整数转换成数字字符串 C语言

编写一个函数将一个整数的各位数提取出来,并将其转换成数字字符串,在主函数中输出该字符串,不用指针,用简单点的C语言。

仅供参考 没有把数字按字符串输出 只是效果差不多
#include<stdio.h>
void main()
{int p[5];
int x,i,j;
printf("请输入1—60000之间的数");
scanf("%d",&x);
if(x<60000&&x>0)
{
for( i=0;i<5;i++)//提取每一位
{j=i;//记录当前下标
if(x!=0)
{p[i]=x%10;
x=x/10; }
else break;
}
//如果输入数字为五位,
if(j==4)
{
for(i=j;i>=0;i--)
printf("%d",p[i]);
}
//输入数字小于五位时,j要减1,因为for还没结束而i+1,又因为j=i;所以p[i]上没有值
else
{for(i=j-1;i>=0;i--)
printf("%d",p[i]);}
}
else
printf("输入有误");
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-16
方法一:
将字符串格式化为字符串
int num;
string str;
str.format("%d",num);
方法二
利用求余求出各位上的数字
scanf(%d,&number)//已三位数为例
int x1,x2,x3;
x1=number/100; //百位数
x2=(number/10)%10; //十位数
x3=number%10; //个位数
第2个回答  2012-12-16
如果可以确定位数会好做一点追问

位数不确定

第3个回答  2012-12-16
/////////////////////////////////////////
// C-Free 4.1
// MinGW 3.4.5
// veket的小号
/////////////////////////////////////////
#include <stdio.h>
void inttostr(int x, char s[]);
void reverseorder(char s[], int last);
int main()
{
char str[100] = "";
int n;
scanf("%d", &n);
inttostr(n, str);
printf("%s\n", str);
getchar();
return 0;
}
void inttostr(int x, char s[])
{
int i = 0;
int j;
while(x)
{
s[i] = x%10 + '0';
x /= 10;
i++;
}
s[i] = '\0';
reverseorder(s, i-1);
}
void reverseorder(char s[], int last)
{
int i = 0;
int j = last;
char tmp;
while(i<j)
{
tmp = s[i];
s[i] = s[j];
s[j] = tmp;
i++;
j--;
}
}追问

char str[100] = "";

是什么意思啊

追答

str[0] = '\0';

C语言,如何将一个个输入的数字变成一串数字一起输出来,求解~
include<stdio.h>int main(void){char c;long num = 0;while((c = getchar()) != '\\n'){if(c >= '0' && c <= '9'){num = num * 10 + (c - '0');}}printf("num = %d\\n", num);}代码比较简单,就不写注释了,相信你能看懂。希望对你有所帮助。

C语言编程:编写一个函数change,要求它能将一个整数字符串转换成一个...
int change(char *a){ int i;int num=0;for(i=0;a[i];i++)num+=(a[i]-'0')*pow(10,(strlen(a)-1-i));return num;} main(){ char a[10];int num;gets(a);num=change(a);printf("%d",num);}

求助:怎么用C语言把一个整数转换为字符串,如:整数123转换为字符串“123...
1、一位的整型数转换为字符。首先,定义一个整型变量,保存转换的一位整型数值。2、接着,定义一个字符型变量,保存转换为的单个字符。3、将数值变量加上48,然后保存在字符变量c中。4、运行程序,输入一个一位的数值后,电脑就会把它转换为相应的字符。5、还可以将转换表达式中的48,更改为字符0,...

C语言编程 输入一个不多于九位的正整数,要求输出它是几位数
1、输入一个正整数 2、将整数转换为字符串(使用sprintf函数)3、求字符串的长度(strlen函数),即正整数的位数 代码如下:include <stdio.h>#include <string.h>int main(){long num;char str[20];scanf("%ld", &num);sprintf(str, "%ld", num);printf("%d", strlen(str));return 0;}...

C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并...
表达一个数比如m,m自身除以10时,要这样写,m\/=10或者m=m\/10绝对不能写成m\/10;在C中这是非法语句,还有你漏了几个冒号,还有你的算法有问题,多乘了一个10,输入123时输出3210,这个算法问题你一定要仔细独立去寻找自己的函数部分肯定出了问题,还有当你输入是100时你输出的肯定得是1而不是001...

C语言程序:将0—65535之间的整数转换为16进制,要求用convert函数,急求...
printf("输入要进行转换的数字:");scanf("%ld",&a);printf("%x\\n",a);} else if(b==16&&c==10){ printf("输入要进行转换的数字:");scanf("%x",&a);printf("%ld\\n",a);} else if((b==2||b==8)&&c==10){ printf("输入要进行转换的数字:");scanf("%ld",&a);rzs(&a...

C语言求解:1.输入一个正整数,将其转换为二进制并输出? 2.输出100~1000...
&num);itoa(num,s,2);printf("二进制是:%s\\n",s);} 2.include<stdio.h> main(){ int num,i;printf("请输入一个数(100~1000之间):");scanf("%d",&num);if(num>=100&&num<=1000){ i=num*num;printf("%d*%d=%ld\\n",num,num,i);} else printf("你的输入有误\\n");} ...

C语言的题 通用数据转换函数集 要求:编一函数(过程)集, 可分别将整数...
scanf("%*c");printf("PLS enter a float:");} sprintf(buf, "%f", f);} void bool_to_string(){ int b;printf("PLS enter a bool(1 for true, 0 for false:");while(!scanf("%d", &b)){ scanf("%*[^\\n]");scanf("%*c");printf("PLS enter a bool(1 for true, 0...

c++ 如何把一个int转为char*
把int类型数字转成char类型,可以使用以下方法:char b[4];i nt a;for(int i=00;i<4;i++){ b[i]=(char)a;a=a>>8;} int用于符号∫,int(s)符号表达式s的不定积分。int(s,v)符号表达式s关于变量v的不定积分。int(s,a,b)符号表达式s的定积分, a,b分别为积分的下限和上限。int(...

c语言 将一个十进制整数m转化成r进制整数的字符串表示形式。最好难...
i-x-1都应该改成x-i-1。楼主的意思就是乘以16的对应的位数次方呗,你仔细看看就知道应该是x-i-1 2、我们假设十位上是的数字是1,那么这个数代表了16,这时候用一个字符是无法表示的 也就是说,不能简单的用s[i]去存放原16进制的某位转换成10进制对应的数 一个简单的修改方法是,让func...

相似回答