摘要:本文主要向大家介绍了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+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-IT技术咨询与就业发展一体化服务 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号