前言
在C语言里面我们用的字符串都是以'\0'结尾的字符合集,为了操作方便所以在c++中推出了stirng类
一 string介绍
1.string是表示字符串的字符串类
2.因为是类,所以他会有一些常用的接口,同时也添加了专门用来操作string的常规操作
3.string在底层实际是:basic_string模板类的别名。也就是说string是一个模板,之所以要设置为模板是为了适应更多的编码
4.不能操作多字节或者变长字符的序列
🎈string常用接口说明
1.string类对象的构造函数
void Teststring()
{
string str1;//构造空的
string str2("hello,world");//string str2="hello,world";//常量字符串构造
string str3(str2);//用对象构造
}
2.string类对象的容量操作
void Teststring()
{
string str("hello,world");
cout << "有效字符:" << str.size() << endl << endl;//cout << str.length() << endl;
cout << "容量大小:" << str.capacity() << endl << endl;
cout << "是否为空?" << str.empty() << endl << endl;;
cout << "清空有效字符" << endl;
str.clear();
cout << "现在有效字符:" << str.size() << endl << endl;
cout << "为字符串预留空间:" << endl;
str.reserve(20);
cout << "当前容量大小" << str.capacity() << endl << endl;;
cout << "有效字符变为n" << endl;
str.resize(16, 'a');
cout << "当前有效字符:" << str.size() << endl;
}
这里要注意两个点
🎈resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个,不同的是当字符个数增多时:resize(n)用0来填充多出的元素空间,resize(size_t n, char c)用字符c来填充多出的元素空间。注意:resize在改变元素个数时,如果是将元素个数增多,可能会改变底层容量的大小,如果是将元素个数减少,底层空间总大小不变。
🎈reserve(size_t res_arg = 0):为string预留空间,不改变有效元素个数,当reserve的参数小于string的底层空间总大小时,reserver不会改变容量大小。