string的使用
string 转换成 const char *
string有2个函数可以用来转换。
c_str()
data()
这俩个函数返回的都是 const char*
string 转换成 char *
转换成char*
,需要使用strcpy函数。
const char *转换string
直接赋值
char * (char) 转换成string
直接赋值。
这样输出时只能使用 std::cout
来执行吧。
char[] 转换成string
可以直接赋值。但是也会出现上面的问题。需要同样的处理。
string转换成char[]
不可直接赋值,单个取出,赋给char[]
附全部代码:
string str1 = "";
char ch1 = 'a', ch2[] = "hello", *ch3 = "hello";
const char ch4 = 'a', *ch5 = "hello";
//char 转 string
str1 = ch1;
cout << str1 << endl;
//char[] 转 string
str1 = ch2;
cout << str1 << endl;
//char* 转 string
str1 = ch3;
cout << str1 << endl;
//const char 转 string
str1 = ch4;
cout << str1 << endl;
//const char* 转 string
str1 = ch5;
cout << str1 << endl;
string本身就是由char支持的,所以在这方面很强大
附一张结果图
string str2 = "121121";
//string 转 char
ch1 = str2[0];
//string 转 char[]
for (unsigned i = 0; i < str2.length(); i++) {
ch2[i] = str2[i];
}
//string 转 char*
strcpy(ch3, str2.data());
cout << ch3 << endl;
//string 转 const char --需要初始化
const char ch = *str2.c_str();
//string 转 const char*
ch5 = str2.c_str();
注意:标准的string类提供了 STL 接口
可以使用如 begin()、end(),迭代器等等
string与char
不同
string不一定以
NULL(或'\0')
结束
所以,不能将string直接赋值给char 。
string长度通过length()得到
通过下标访问string组成的每个字符元素。
当然最简单化的时使用
stringstream
stringstream使用时必须包含
#include <sstream>