string类
string类
头文件:#include<string>
名称空间:using namespace std;
初始化:
string Str;
String类的构造函数和析构函数如下:
- string s(str) //拷贝构造函数 生成str的复制品
- string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值
- string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
- string s(cstr) //将C字符串作为s的初值
- string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
- string s(num,c) //生成一个字符串,包含num个c字符
- string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值
string类操作
- swap() //交换两个字符串的内容
- +=,append(),push_back() //在尾部添加字符
- insert() //插入字符
- erase() //删除字符
- replace() //替换字符
- empty() //判断字符串是否为空
- [ ], at() //存取单一字符
- >>,getline() //从stream读取某值
- copy() //将某值赋值为一个C_string
- c_str() //将内容以C_string返回
- data() //将内容以字符数组形式返回
- substr() //返回某个子字符串
string类与字符串数组的转换
C++提供的由C++字符串得到对应的C_string的方法是使用data()、c_str()和copy(),其中,data()以字符数组的形式返回字符串内容,但并不添加’ ’。c_str()返回一个以‘ ’结尾的字符数组,而copy()则把字符串的内容复制或写入既有的c_string或字符数组内。C++字符串并不以’ ’结尾。
将string类型转换为字符数组
#include<cstdlib> #include<iostream> #include<cstdio> #include<string> #include<cstring> using namespace std; int main() { string s("123456.1"); char arr[10]; cout<<s.data()<<endl;//1.返回不带' ' 的字符数组 123456.1 cout<<s.c_str()<<endl;//2.返回带 ' '的字符数组 123456.1 s.copy(arr, 8);//3.回不带' ' 的字符数组 arr[8] = '