C++实现将长整型数转换为字符串的示例代码

C++实现将长整型数转换为字符串

/*
 * Created by Chimomo
 */
#include <iostream>
 
using namespace std;
 
char *convertLongToStr(long L) {
    int i = 1;
    int n = 1;
    while (!(L / i < 10)) {
        i *= 10;
        ++n;
    }
 
    char *str = (char *) malloc(n * sizeof(char));
    int j = 0;
    while (L) {
        str[j++] = (char) ((int) (L / i) + (int) '0');
        L = L % i;
        i /= 10;
    }
 
    // A significant line to denote the end of string.
    str[n] = '\0';
 
    return str;
}
 
int main() {
    long l = 123456789;
    char *str = convertLongToStr(l);
    cout << str << endl;
}
 
// Output:
/*
123456789
*/

C++将一个整型数字转化成为字符串

思路:

  • 利用char类型对于整数的隐式转换,可以直接将整数加48(0的ASCII)赋值给char类型参数,转化成字符
  • 利用string类型对+运算符的重载,借用一个string参数储存每次递归返回值
  • 为了防止输出的字符串顺序颠倒,将string+=temp;语句放在调用递归语句的后面,然后再返回string参数

代码如下:

//转化函数
string transfer_Num(int num){
 char temp=num%10+48;
 string m_temp="";
 if(num>=10)
  m_temp+=transfer_Num(num/10);
 m_temp+=temp;
 return m_temp;
} 

int main(){
 int a=4876867;
 string temp=transfer_Num(a);
 cout<<temp;
 return 0;
}