c++ char 与string转换

C++中char类型可以自动转换成string类型,即你可以用char类型字符串直接给string类型变量赋值。但反过来是不行的,string类型不能隐式的将string类型转换成char类型,想要转换,必须显式调用c_str()函数。给你举个例子:
string s1;
const char *pc = "a character array";
s1 = pc; // ok

char *str = s1; // 编译时刻类型错误

const char *str = s1.c_str(); // ok

 

//char与string区别

 

'a'是char, "a"是char string,这两者都是普通的字符和字符串,和C中没什么不同 值得注意的是后者包含两个字符,末尾有一个隐身的'\0'

而:string str = "a" 是C++ string 注意:C++中的char string和string不是一回事

当用到了"string"这个关键词,就不是普通的字符串,而是用到了封装后的类

在C++中,char仍然是一个primitive type(原始类型),而string已经经过封装,成为了一个class(类) 用到它时,我们需要 #include <string>,它是C++ Standard Library (C++标准库)的一部分

string这个类包括很多成员函数,比如push_back(), insert(), append()等, 详情见: http://www.cplusplus.com/reference/string/string/

 

posted on 2014-09-16 09:09  &大飞  阅读(580)  评论(0编辑  收藏  举报

导航