C++ STL 之 string
string 是 C++STL 里的一种容器,主要用于存储字符串(废话!)
string 原型:typedef basic_string<char> string;
大家都知道,string 转为 C风格字符串(以下简称为CS)可以用它的成员函数 c_str()
但是,
string::c_str()只能把string对象转为const CS,而const CS是不能赋值给 CS 的,但 CS 可赋值为const CS
但问题又来了,string 怎么转 CS 呢?
string 里有个成员函数 copy() 可以很好地解决这一问题(当然,你也可以用 strcpy() 与 string::c_str() 组合,但我个人不推荐,毕竟还要再 include 一个头文件)
copy() 的作用:复制字符串
string::copy() 原型:
size_type copy(char* c, size_type n, size_type pos = 0); // size_type 是 string 里的一种类型,与 size_t 相似
意义:将原 string 对象中从位置 pos 开始的地方复制 n 个字符到 c 中,返回值为复制的字符数
注意:此函数只能把 string 对象复制到 CS 中,不能将 CS 复制到 string 对象中
举个栗子:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
char a[105];
string s = "Hello, World!";
s.copy(a, s.length() + 1);
printf("%s", a);
return 0;
}
// 输出 Hello, World!
接下来,便是 CS 转 string 的教程:
直接用 string 重载的运算符 = 就好了呀
栗子君又来啦:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
char a[] = "Hello, World!";
string s;
s = a;
cout << s << flush; // flush 可以和 endl 一样刷新缓冲区,但不会插入换行符
return 0;
}
// 输出 Hello, World!