C ++在其定义中具有一种将字符序列表示为class对象的方式。此类称为std ::字符串。字符串类将字符存储为字节序列,并具有允许访问单字节字符的功能。
std ::字符串与字符数组
字符数组只是可以用空字符终止的字符数组。字符串是一个类,用于定义表示为字符流的对象。
字符数组的大小必须静态分配,如果需要,则无法在运行时分配更多内存。如果使用字符数组,则会浪费未使用的分配内存。如果是字符串,则动态分配内存。可以在运行时按需分配更多的内存。由于没有预分配内存,因此不会浪费内存。
如果是字符数组,则存在数组衰减的威胁。当字符串表示为对象时,不会发生数组衰减。
实现字符数组是快比的std :: string。与实现相比,字符串比字符数组要慢。
字符数组没有提供太多内置函数来操作字符串。字符串类定义了许多功能,这些功能允许对字符串进行多种操作。
字符串操作
输入功能
1. getline():-此函数用于将用户输入的字符流存储在对象存储器中。
2. push_back():-此函数用于在字符串末尾输入字符。
3. pop_back():-从C ++ 11(用于字符串)引入,此函数用于删除字符串中的最后一个字符。
容量功能
4. Capacity():-此函数返回分配给字符串的容量,该容量可以等于或大于字符串的大小。分配了额外的空间,以便在将新字符添加到字符串时,可以高效地完成操作。
5. resize():-此函数更改字符串的大小,大小可以增加或减少。
6.length():-此函数查找字符串的长度
7.shrink_to_fit():-此函数减小字符串的容量,使其等于字符串的最小容量。如果我们确定不必再添加任何字符,则此操作对于节省额外的内存很有用。
迭代器功能
8. begin():-此函数将迭代器返回到字符串的开头。
9.端() :-该函数返回一个迭代到结束的字符串。
10. rbegin():-此函数返回指向字符串末尾的反向迭代器。
11. rend():-此函数返回指向字符串开头的反向迭代器。
操作功能
12. copy(“ char array”,len,pos):-此函数将子字符串复制到其参数中提到的目标字符数组中。它需要3个参数,目标char数组,要复制的长度以及字符串中的开始位置才能开始复制。
13. swap():-此函数将一个字符串与另一个字符串交换。