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;
} 

到此这篇关于C++实现将长整型数转换为字符串的示例代码的文章就介绍到这了,更多相关C++ 长整型数转换为字符串内容请搜索程序员的世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员的世界!

C++实现将长整型数转换为字符串的示例代码的更多相关文章

  1. C语言的进制转换及算法实现教程

    1、其他进制转十进制1.1、二进制转十进制转换规程: 从最低位开始,将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和,例如:二进制 1011 = 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 1 + 2 + 0 + 8 = 111.2、八制转十进制转换规则: 从最低位开始......

  2. C语言递归之汉诺塔和青蛙跳台阶问题

    递归就是一个函数执行过程中调用自己,在c语言中有很多关于递归的经典问题,例如:斐波那契数列问题、汉诺塔问题等,在研究递归问题时我们要注意三点:1.递归的结束条件2.递归在每次进行过程中,都得离条件越来越近3.相邻两次递归调用之间的关联关系汉诺塔问题:有三根杆子A, B, C。A杆上有N个(N >......

  3. C语言中的const如何保证变量不被修改

    这小段文章要理清楚的是,在C语言中,const是如何保证变量不被修改的?我们可以想到两种方式:第一种,由编译器来阻止修改const变量的语句,让这种程序不能通过编译;第二种,由操作系统来阻止,即把const 的内存地址访问权限标记为“只读”,一旦运行中的程序试图修改它,就会产生异常,终止进程。上面想......

  4. C++ 入门篇

    C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1.1.1 创建项目 Visual Studio是我们用来编写C++程序的主要工具,我们先将它打开 1.1.2 创建文件 右键源文件,选......

  5. C语言之漫谈指针(下)

    C语言之漫谈指针(下)在上节我们讲到了一些关于指针的基础知识:详见:C语言之漫谈指针(上)本节大纲:零.小tips一.字符指针二.指针数组与数组指针三.数组传参与指针传参四.函数指针及函数指针数组五.回调函数六.例题讲解 零.小tips在正式开始下节之前,我们先来穿插两个小tips:1.打印函数......

  6. 虚函数表-C++多态的实现原理解析

    参考:http://c.biancheng.net/view/267.html1、说明我们都知道多态指的是父类的指针在运行中指向子类,那么它的实现原理是什么呢?答案是虚函数表在 关于virtual 一文中,我们详细了解了C++多态的使用方式,我们知道没有 virtual 关键子就没法使用多态2、虚函......

  7. std::async的使用总结

    C++98标准中并没有线程库的存在,直到C++11中才终于提供了多线程的标准库,提供了管理线程、保护共享数据、线程间同步操作、原子操作等类。多线程库对应的头文件是#include ,类名为std::thread。然而线程毕竟是比较贴近系统的东西,使用起来仍然不是很方便,特别是线程同步及获取线程运行结......

  8. 关于C++中构造函数的常见疑问

    基本概念我们已经知道在定义一个对象时,该对象会根据你传入的参数来调用类中对应的构造函数。同时,在释放这个对象时,会调用类中的析构函数。其中,构造函数有三种,分别是默认构造函数,有参构造函数和拷贝构造函数。在类中,如果我们没有自行定义任何的构造函数,编译器会为我们提供两种构造函数(默认构造函数和拷贝构......

  9. C/C++内存对齐详解

    1、什么是内存对齐 还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,char占一个byte,那么将它们放到一个结构体中应该占4+1=5byte;但是实际上,通过运行程序得到的结果是8 byte,这就是内存对齐所导致的。 //32位系统 #inclu......

  10. OpenCV 之 图象几何变换

    二维平面中,图像的几何变换有等距、相似、仿射、投影等,如下所示: 1 图象几何变换1.1 等距变换 等距变换 (Isometric Transformation),是一种二维的刚体变换,可理解为旋转和平移的组合 $\quad \beg......

随机推荐

  1. PHP方法的返回值示例详解

    前言不仅是PHP,大部分编程语言的函数或者叫方法,都可以用return来定义方法的返回值。从函数这个叫法来看,本身它就是一个计算操作,因此,计算总会有个结果,如果你在方法体中处理了结果,比如进行了持久化保存,那么这个函数就不用返回任何内容。而计算的结果是要给外部使用的,这时候就要将计算结果进行返回了......

  2. java mybatis框架配置详解

    一个框架的使用,必然离不开其中的组件支持。我们在下载完mybatis框架后,因为大部分的内部结构还没有启动,就要手动的对其进行配置。在之前有提到,mybatis框架的作用就有数据库方面的,所以本篇文章带来了数据库和sql方面的配置方法,大家一起往下面看看具体操作。1.配置数据库创建mybatis的配......

  3. vue3常用的API

    vue3.x已经发布了这么久,相关的生态也慢慢起来了,包括vite这个新的打包工具,在vue3.0学习过程中有一些实用性的api对比,希望能在开发中给大家做个示范,准确的使用对应的api去完成我们的项目开发生命周期的变更要特别说明一下的就是,setup 函数代替了 beforeCreate 和 cr......

  4. Java多线程之线程池七个参数详解

    ThreadPoolExecutor是JDK中的线程池实现,这个类实现了一个线程池需要的各个方法,它提供了任务提交、线程管理、监控等方法。下面是ThreadPoolExecutor类的构造方法源码,其他创建线程池的方法最终都会导向这个构造方法,共有7个参数:corePoolSize、maximumP......

  5. 在.NET Core 中使用Quartz.NET

    Quartz.NET是功能齐全的开源作业调度系统,可用于最小的应用程序到大型企业系统。Quartz.NET具有三个主要概念:job:运行的后台任务trigger:控制后台任务运行的触发器。scheduler:协调job和triggerASP.NET Core通过托管服务对运行“后台任务”具有良好的支......

  6. Python3 使用pip安装git并获取Yahoo金融数据的操作

    Python3.6.4必须downgrade成3.5pip版本最低9.0.3自己的电脑必须已经安装好git关于anaconda prompt报错“Cannot find command 'git'”解决在anaconda prompt执行conda install pandas-datareader......

  7. java中instanceof 关键字作用和实际用途详解

    instanceof1. instanceof 是Java中的一个关键字,Java中的关键子都是小写。2. instanceof关键字的作用是判断左边对象是否是右边类(这里有很多人说是对象,所以注意这里是类,并不是对象)的实例(通俗易懂的说就是:子类对象,或者右边类本身的对象)返回的boolean类......

  8. Java 并发编程要点

    使用线程有三种使用线程的方法:实现 Runnable 接口;实现 Callable 接口;继承 Thread 类。实现 Runnable 和 Callable 接口的类只能当做一个可以在线程中运行的任务,不是真正意义上的线程,因此最后还需要通过 Thread 来调用。可以理解为任务是通过线程驱动从而......

  9. ASP.NET Core 5.0 MVC中的 Razor 页面 介绍

    Razor 是一个用于将基于服务器的代码嵌入到网页中的标记语法。 Razor语法由 Razor 标记、c # 和 HTML 组成。 通常包含 Razor 的文件的扩展名 cshtmlRazor 语法Razor 支持 c #,并使用 @ 符号从 HTML 转换为 c #。 Razor 计算 c # 表......

  10. Vue3(三)CND + ES6的import + 工程化的目录结构

    突发奇想这几天整理了一下vue的几种使用方式,对比之后发现有很多相似之处,那么是不是可以混合使用呢?比如这样:vue的全家桶和UI库,采用传统的方式加载(CND、script)。自己写的js代码,采用ES6的 import 方式加载。目录结构采用vuecli建立的项目的目录结构。入口页面用vite项......