如何将std::string转int,double? (C/C++) (C) (template)
来源:互联网 发布:windows live最新版 编辑:程序博客网 时间:2024/05/29 09:22
原文地址:http://www.cnblogs.com/oomusou/archive/2006/10/10/525647.html
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 }
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/*
2(C) OOMusou 2006 http://oomusou.cnblogs.com
3
4Filename : stringstream_to_double.cpp
5Compiler : Visual C++ 8.0
6Description : Demo how to convert string to any type.
7Release : 11/18/2006
8*/
9#include <iostream>
10#include <sstream>
11#include <string>
12
13template <class T>
14void convertFromString(T &, const std::string &);
15
16int main() {
17 std::string s("123");
18
19 // Convert std::string to int
20 int i = 0;
21 convertFromString(i,s);
22 std::cout << i << std::endl;
23
24 // Convert std::string to double
25 double d = 0;
26 convertFromString(d,s);
27 std::cout << d << std::endl;
28
29 return 0;
30}
31
32template <class T>
33void convertFromString(T &value, const std::string &s) {
34 std::stringstream ss(s);
35 ss >> value;
36}
2(C) OOMusou 2006 http://oomusou.cnblogs.com
3
4Filename : stringstream_to_double.cpp
5Compiler : Visual C++ 8.0
6Description : Demo how to convert string to any type.
7Release : 11/18/2006
8*/
9#include <iostream>
10#include <sstream>
11#include <string>
12
13template <class T>
14void convertFromString(T &, const std::string &);
15
16int main() {
17 std::string s("123");
18
19 // Convert std::string to int
20 int i = 0;
21 convertFromString(i,s);
22 std::cout << i << std::endl;
23
24 // Convert std::string to double
25 double d = 0;
26 convertFromString(d,s);
27 std::cout << d << std::endl;
28
29 return 0;
30}
31
32template <class T>
33void convertFromString(T &value, const std::string &s) {
34 std::stringstream ss(s);
35 ss >> value;
36}
- 如何将int,double转std::string? (C/C++) (template)
- 如何将std::string转int,double? (C/C++) (C) (template)
- (原創) 如何将std::string转int,double? (C/C++) (template)
- :string转int,double? (C/C++)
- string转int,double? (C/C++)
- 【C++】int转string,double转string方法,string转int,string转double方法
- C++: string 转 int ;string转float;int 转string;double转char*
- C++:int转string
- c++int转string
- C++int转string
- .net(c#)如何将string型转换成int型
- C++: std::string 与 Unicode 如何结合?
- C++: std::string 与 Unicode 如何结合?
- C++: std::string 与 Unicode 如何结合?
- [C++]string到double,float,int的转换
- (原創) 如何將int轉string? (C/C++) (C)
- C/C++ string转int
- 【C/C++】:string到double和string到int的转换
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 小白日记
- Android开发集锦之四十四:string.xml中的 % 导致编译失败
- 64 bits android compile
- JQuery 游戏开发
- 如何将std::string转int,double? (C/C++) (C) (template)
- VB.NET完成一个功能增强的记事本
- java.lang.Exception: Socket bind failed: [730048]
- ubantu之行
- Yii 的登录流程
- C语言简单示例(代码注释)
- /etc/ld.so.conf.d/目录下文件的作用
- HDU 1711 Number Sequence (KMP)
- 最少代码的瀑布流实现