(原創) 如何将std::string转int,double? (C/C++) (C) (template)
2008-08-01 16:59
411 查看
Abstract
std::string为library type,而int、double为built-in type,两者无法利用(int)或(double)的方式互转,本文提出轉換的方式。
Introduction
使用環境:Visual C++ 9.0 / Visual Studio 2008
Method 1:
使用C的atoi()與atof()。
先利用c_str()轉成C string,再用atoi()與atof()。
string_to_double.cpp / C++
1 /*
2 (C) OOMusou 2008 http://oomusou.cnblogs.com 3
4 Filename : string_to_double.cpp
5 Compiler : Visual C++ 9.0 / Visual Studio 2008
6 Description : Demo how to convert string to int (double)
7 Release : 08/01/2008 1.0
8 */
9
10 #include <iostream>
11 #include <string>
12 #include <cstdlib>
13
14 using namespace std;
15
16 int main() {
17 string s = "123";
18 double n = atof(s.c_str());
19 //int n = atoi(s.c_str());
20
21 cout << n << endl;
22 }
Method 2:
利用stringstream
这里使用functon template的方式将std::string转int、std::string转double。
stringstream_to_double.cpp / C++
1#include <iostream>
10#include <sstream>
11#include <string>
12
13template <class T>
14void convertFromString(T &, const std::string &);
15
16
32template <class T>
33void convertFromString(T &value, const std::string &s) {
34 std::stringstream ss(s);
35 ss >> value;
36}
See Also
(原創) 如何将int,double转std::string? (中级) (C++) (template C++)
(原創) 如何將int轉string? (初級) (C/C++)
Reference
Bertel Brander, Midgaard, http://home20.inet.tele.dk/midgaard/tipc20050107.html
std::string为library type,而int、double为built-in type,两者无法利用(int)或(double)的方式互转,本文提出轉換的方式。
Introduction
使用環境:Visual C++ 9.0 / Visual Studio 2008
Method 1:
使用C的atoi()與atof()。
先利用c_str()轉成C string,再用atoi()與atof()。
string_to_double.cpp / C++
1 /*
2 (C) OOMusou 2008 http://oomusou.cnblogs.com 3
4 Filename : string_to_double.cpp
5 Compiler : Visual C++ 9.0 / Visual Studio 2008
6 Description : Demo how to convert string to int (double)
7 Release : 08/01/2008 1.0
8 */
9
10 #include <iostream>
11 #include <string>
12 #include <cstdlib>
13
14 using namespace std;
15
16 int main() {
17 string s = "123";
18 double n = atof(s.c_str());
19 //int n = atoi(s.c_str());
20
21 cout << n << endl;
22 }
Method 2:
利用stringstream
这里使用functon template的方式将std::string转int、std::string转double。
stringstream_to_double.cpp / C++
1#include <iostream>
10#include <sstream>
11#include <string>
12
13template <class T>
14void convertFromString(T &, const std::string &);
15
16
32template <class T>
33void convertFromString(T &value, const std::string &s) {
34 std::stringstream ss(s);
35 ss >> value;
36}
See Also
(原創) 如何将int,double转std::string? (中级) (C++) (template C++)
(原創) 如何將int轉string? (初級) (C/C++)
Reference
Bertel Brander, Midgaard, http://home20.inet.tele.dk/midgaard/tipc20050107.html
相关文章推荐
- (原創) 如何将int,double转std::string? (C/C++) (template)
- (原創) 如何将std::string转int,double? (C/C++) (template)
- 如何将std::string转int,double? (C/C++) (C) (template)
- 如何将std::string转int,double? (C/C++) (C) (template)
- 如何将int,double转std::string? (C/C++) (template)
- 如何将std::string转int,double? (C/C++) (C) (template)
- java中如何实现String转换为int double;以及double,int如何转换为String
- int double std:string之间的互转
- std::string与int、double相互转换
- 如何在C++中方便的将float、int等类型数据转换成string类型,并利用ROS中的std_msg/String发布出去
- 如何在C++中方便的将float、int等类型数据转换成string类型,并利用ROS中的std_msg/String发布出去
- (原創) 如何將std::string轉成大寫(小寫)? (C/C++) (STL) (C)
- SDL入门教程(九):4、int转换为std::string
- 如何将int转换成String 在java中
- Swift教程_基础技术(0001)_类型转换(父子类转换;Int、Double、String转换)
- string to int to double and int double to string
- BinaryReader 、BinaryWriter是方便用二进制方式读写int,double,string之类的数据
- IOS Number 处理(int-->NSNumber,NSNumber-->nsinteger,string -->double,CGFloat --> dobule)
- 1如何将字串 String 与 int的相互转换?
- 如何将int转换成String