要使用string, 首先要包含头文件#include <string>中。<string>头文件介绍了模板类,实例类,以及一些转换函数。
c++标准库支持四种形式的字符串:string, wstring, u16string, u32string。
模板类:
basic_string
char_traits : 针对char,wchar_t, char16_t, char32_t四种类型做了模板特化。
实例类:
typedef basic_string<char> string;
typedef basic_string<char16_t> u16string
typedef basic_string<char32_t> u32string
typedef basic_string<wchar_t> wstring
函数:
函数分为两类,一类是从string转换成目标格式,一类是从其他格式转换成string
第一类:
stoi、stol、stoul、stoll、stoull、stof、stod、stold
第二类:
to_string、to_wstring
作为string的使用者,只需要知道string支持哪些操作。下面列出了string的一些常用操作
1、操作符
<<,>> (输入输出);
getline(输入流, s) :从输入流中读取一个字符串存入s中;
s.empty()
s.size() (length函数与这个函数的功能一模一样,那为什么会存在两个名字不同,但干着同样的事情的函数呢?因为length是沿用C的风格,一开始只有length;而size是后来引入stl后才引入的,为了兼容stl的统一接口而添加的)
s[n]
s1+s2
s1=s2
s1==s2
s1!=s2
<,<=, >, >=
2、除了上述操作,string还提供了stl标准容器的统一接口,如迭代器操作,容量操作,元素访问,修改容器等等一系列的操作。
3、上面列出了多个操作符,与这些操作符相对应的函数有assign(), append(), compare(), at()等函数,但由于都是操作符使用起来更方便,所以一般不会用到这些函数
4、find函数。string提供了多个版本的find函数
上面一共有6种函数, 每种函数有4中不同的重载形式,所以一共有24个函数。
所有的查找函数都返回一个size_type类型,这个返回值一般都是所找到字符串的位置,如果没有找到,则返回string::npos。有一点需要特别注意,所有和string::npos的比较一定要用string::size_type来使用,不要直接使用int 或者unsigned int等类型。其实string::npos表示的是-1.
5、其他函数。
replace(),substr()等。。。