STL中的字符串

1. STL中只有一个字符串类 basic_string, basic_string 管理一个'\0'结尾的字符数

组,字符类型由模板参数决定
   使用时不必担心内存泄露,长度等问题

2. string::npos,可定义字符串最大的长度

3. auto_prt

a. 使用new分配的堆中的内存,必须使用delete释放,还需要再任何跳出函数的语句中

释放该内存

b. auto_str对象过期时,内存自动被释放

c. 使用auto_ptr时,只能配对使用 new and delete

d. 不要对由new[]分配的内存使用auto_ptr

4. typedef basic_string <char> string
   trypeef basic_string <wchar> wstring

5. 字符串构造

string str("123344");
string str1(str);
string str2(str,2,5), 从第二个元素,复制五个元素

string str3(str.begin(),str.end())

char ch[] = "abcdefg"

string str4(ch,5), 将字符串ch的前五个

6. size and length 返回大小

7. string.capacity 重新分配内存之前,字符串能容纳的最大字符数

8. string.max_size(), string类最多包含的字符数

9. 元素存取

[], at()

string s("abcde");

char temp = 0;

temp = s.at(2), // temp=c

temp = s[s.length()] //vc 会报错

temp = s.at(s.length()) // 错误

10. comparenocase

11 assign()

str.assign(str1,3,3), 从第三个元素开始,取三个字符串

str.assign(str1,2,str.npos);从位置2到末尾的字符串赋值

12. erase

str.erase(str.begin(),str.end())

str.erase(3)

13. swap

交换两个字符串内容

str.swap(str2)

14 insert

15. append

str.append("ddd");

16. replace

17. 拼接字符串

str = str1 + str2

18 string s1, s2

getline(cin, s1);
getline(cin,s2, '')





19. find

20. STL对配置器的支持

你可能感兴趣的:(字符串)