将数字转化为字符串

#include<iostream>
using namespace std;
char a[100];
int i=0,j;
void fac(int n){
    if(n<0){            //若输入数字为负数
        a[i++]='-';        //现将负号放入输入中
        n=-n;            //数字变为正数
        fac(n);            //再调用整数转化为数组的函数
        return ;        //调用结束后函数结束,结果已经保存在了数组中
    }
    else if(n>=0&&n<=9){
        a[i++]=n+'0';    //如果数字为个位数,直接将该数字放进去就行了
        return ;        //函数结束
    }
    else
        a[i++]=n%10+'0'; //否则将该数组逆序放入该数组中   这里+'0'是为了将整型转化为字符型(要是字符型转化为整型需要 -'0')
    fac(n/10);            //递归调用该函数
    return ;
}

int main()
{
    int n;
    int t;
    cout<<"请输入一个整数:"<<endl;
    cin>>n;
    fac(n);
    a[i]='\0';                                    //由于数组内的数是逆序放入的,要进行逆序
    if(n>0){                                    //分情况当该数字大于0时候
    for(i=0,j=strlen(a)-1;i<j;i++,j--){
        t=a[i];
        a[i]=a[j];
        a[j]=t;
    }
    cout<<a<<endl;
    }
    if(n<0)                                        //当该数字小于0时候
    {
        for(i=1,j=strlen(a)-1;i<j;i++,j--){
        t=a[i];
        a[i]=a[j];
        a[j]=t;
    }
    cout<<a<<endl;                                //排序结束,输出该字符串
    }
    return 0;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值