C++语言中字符串和数字相互转化实现
小标 2018-07-10 来源 : 阅读 778 评论 0

摘要:本文主要向大家介绍了C++语言中字符串和数字相互转化实现,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

本文主要向大家介绍了C++语言中字符串和数字相互转化实现,通过具体的内容向大家展示,希望对大家学习C++语言有所帮助。

在刷一些题目的时候,总是会碰到字符串和数字进行转化的问题,今天我们就在C++中来用多种方法实现。示例代码上传至 https://github.com/chenyufeng1991/TransferStringAndInt。

(1)string -> char *


// string -> char *

    string str3 = "chenyufeng";

    const char *str3ToChar;

    str3ToChar = str3.c_str();

   

在C++中字符串我们常用STL中的, 而在C语言中我们常用的是字符数组。直接使用string.c_str()即可完成把string转化为char *;

(2)char * -> string


// char * -> string

    char *str4 = "yufeng";

    string str5(str4);

    cout << str5 << endl;

   

直接使用string中的构造函数即可完成使用char *初始化string的操作。

(3)使用ostringstream把数字转化为string


   

// 可以使用ostringstream把int型输入到流中,然后转化为字符串;

    ostringstream os; // 字符串输出流

    int i = 123;

    os << "Hello" << i;

    cout << os.str() << endl;

 

    os << i;

    cout << os.str() << endl;

 

    os << "World";

    cout << os.str() << endl;

   

ostringstream其实是字符串的输出流,可以不断的在流中插入数据。然后调用ostringstream中的str()方法全部把流中的数据转化为string。

(4)使用istringstream把字符串转化为数字


   

// 用istringstream对象读一个字符串

    istringstream is; // 字符串输入流

    is.str("567");

    int j;

    is >> j;

    cout << j << endl;

   


(5)atoi:库函数,char *转化为int


   

// string-->int

    // 注意:atoi()里面只能传递const char类型,所以需要把string转化为const char

    string str = "789";

    int str2int = atoi(str.c_str());

    cout << str2int << endl;

   

注意atoi中的参数传递的是char *,而不是string。

(6)sprintf: int 转化为char *


   

// int-->srting,Xcode中不能使用itoa这个函数,因为这个函数没有定义在标准C++里,但是在有些编译器里可以使用,所以这里推荐使用sprintf

   char eeeee[10];

   sprintf(eeeee,"%d",444);

   cout << string(eeeee) << endl;

   


注意sprintf的第一个参数要传递的是字符数组或者字符指针。第二个参数是格式化,“%d”表示int。

其实这里最方便的是使用itoa,可以直接进行int和char *的转化,由于我使用的是Xcode进行编程,在Xcode中不能使用itoa这个函数,因为itoa这个函数没有包括在C++的标准库中。所以我这里只能使用sprintf了。大家可以去尝试一下itoa。

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-IT技术咨询与就业发展一体化服务 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved