C++中利用stringstream或者c_str()进行int型与string型char*类型转换

来源:互联网 发布:23周b超数据 编辑:程序博客网 时间:2024/06/11 04:51

stringstream还是相当强大的。简单易懂,虽然写的行数比较多!

基本数据类型转换例子 int和string,也支持string和char *,int和char *之间的转换。

注意同一个stringstream对象,再进行多次转换的时候,必须调用stringstream的成员函数clear().

头文件<sstream>

int转string
int n = 0;
std::stringstream ss;
std::string str;
ss<<n;
ss>>str;

通过其他方法string转int
std::string str = "123";
int n = atoi(str.c_str());


 

char*,const char*和string 三者转换

1. const char* 和string 转换

(1) const char*转换为 string,直接赋值即可。

     EX: const char* tmp = "tsinghua".

            string s = tmp;

(2) string转换为const char*,利用c_str()

    EX:  string s = "tsinghua";

           const char*tmp = s.c_str();

2. char*和const char*之间的转换

(1) const char*转化为char*,利用const_cast<char*>

     EX: const char* tmp = "tsinghua";

             char* p = const_cast<char*>(tmp);

(2) char*转化为const char*,直接赋值即可。

     char* p = "tsinghua".

     const char* tmp = p;

3. char*和string之间的转换

  有了1和2的基础,char*和string转化就很简单了。

(1)char*转化为string,直接赋值即可。

     EX: char* p = "tsinghua".

            string str = p;

(2)string转化为char*,走两步,先是string->const char*,然后是const char*->char*

     EX:  string str = "tsinghua";

             char* p = const_cast<char*>(str.c_str()):

 

参考资料:

http://blog.csdn.net/perfumekristy/article/details/7027678

http://blog.163.com/chen_dawn/blog/static/11250632010111215937586/

 

 

0 0
原创粉丝点击