博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C/C++中int/long/float/double数值类型与字符串互相转换[总结]
阅读量:2229 次
发布时间:2019-05-09

本文共 1167 字,大约阅读时间需要 3 分钟。

memcpy方法可以实现将int等保存到字符类型的数组中。

示例:

long    long_data=-9828;

     unsigned char [4];

memcpy(data,&t,4); //将long类型的数据用4个char保存。


long my_long_data=0;


memcpy(&tt,data,4);//从4个char中还原出long类型数据。






一、int/long/float/double转字符串

方法1:itoa, ltoa(a表示array数组的意思)

头文件:stdlib.h

示例:

    int a = 3;

    long b = 23;

    char buf1[30] = "";
    itoa(a, buf1, 10);//10表示十进制,buf1保存的内容为"3"
    char buf2[30] = "";
    ltoa(b, buf2, 10);//10表示十进制,buf2保存的内容为"32"

方法2:sprintf

头文件:stdio.h

示例:

    int a = 3;
    float b = 4.2f;
    char buf[30] = "";
    sprintf(buf, "%d,%f", a, b);//buf保存的内容为"3,4.2",可对比printf

方法3:ostringstream

头文件:#include <sstream>

using namespace std;

示例:

    int a = 3;
    float b = 4.2f;
    ostringstream s1;
    s1<<a<<","<<b;//可对比cout
    string s2 = s1.str();//s2保存的内容为"3,4.2"

二、字符串转int/long/float/double

方法1:atoi,atol,atof

头文件:stdlib.h

示例:

int a = atoi("32");

long b = atol("333");

double c = atof("23.4");

方法2:strtol, strtod

头文件:stdlib.h

示例:

long b = strtol("333", NULL, 10);//10表示十进制

double c = strtod("32.3", NULL);

方法3:sscanf

头文件:stdio.h

示例:

    int a;
    float b;
    sscanf("23 23.4", "%d %f", &a, &b);//对比scanf

方法4:istringstream

头文件:#include <sstream>

using namespace std;

示例:

    int a;
    float b;
    istringstream s1("23 23.4");
    s1>>a>>b;//对比cin

转载地址:http://kszbb.baihongyu.com/

你可能感兴趣的文章
如何理解MVC模型
查看>>
SpringMVC中乱码解决方案
查看>>
SpringMVC中时间格式转换的解决方案
查看>>
post和get请求相关知识点
查看>>
关于try finally 中的return语句的问题
查看>>
RequestBody/ResponseBody处理Json数据
查看>>
springmvc请求参数获取的几种方法
查看>>
在eclipse中创建和myeclipse一样的包结构
查看>>
Java中的IO流
查看>>
java中的关键字
查看>>
如果某个方法是静态的,它的行为就不具有多态性
查看>>
优化Hibernate所鼓励的7大措施
查看>>
Java 8系列之重新认识HashMap
查看>>
HashMap 、 ArrayList、String 重写了equals方法 而Object类(比如User)没有重写
查看>>
Servlet的生命周期
查看>>
Object中的getClass()返回的是当前运行的类
查看>>
加载驱动程序的方法
查看>>
深入理解java异常处理机制
查看>>
object类的基本方法
查看>>
回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
查看>>