1. C、C++ 字符串处理
介绍C和C++语言中的字符串处理及相应的转换等操作。
1.1. C++ 字符串
C++标准库中定义了一个string类,用来处理可变长字符序列。使用string类要包含头文件,string定义在命名空间std中;
1.1.1. string的定义和初始化
string str1; //定义等于string str1 = ""
string str2 = str1; //复制赋值
string str3 = "abcde"; //直接赋值
string str4(char* str); //字符串指针初始
string str5(5,'c'); //str5的内容为ccccc
使用char* 初始化时,定义为char str[]的数组也是可以的。
1.1.2. string常用操作函数及说明
函数/操作符 | 说明 |
---|---|
基本函数 | |
str.empty() | 字符串是否为空 |
str.c_str() | string类型转char* |
str.size(), str.length() | 字符串大小,length和size一样 |
str[n] | 获取字符串第n个字符,类似于数组 |
操作符 | |
+, += | 字符串相加:str1 + str2 ; str1 += str2 |
==, !=, < >, <=, => | 字符串比较符,实际按照顺序比较每一个字符的ascii码值的大小 |
常用函数 | |
string &append(const string &s); | 同operator+=() |
string &append(int n,char c); | 在当前字符串结尾添加n个字符c |
string &append(const string &s,int pos,int n); | 把字符串s中从pos开始的n个字符连接到当前字符串的结尾 |
string &append(const char *s); | 把c类型字符串s连接到当前字符串结尾 |
string &append(const char *s,int n); | 把c类型字符串s的前n个字符连接到当前字符串结尾 |
string substr(int pos = 0,int n = npos) const; | 返回pos开始的n个字符组成的字符串,没有指明第二个参数时默认到字符串结尾 |
int find(char c, int pos = 0) const; | 从pos开始查找字符c在当前字符串的位置 |
int find(const string &s, int pos = 0) const; | 从pos开始查找字符串s在当前串中的位置 |
int find(const char *s, int pos = 0) const; | 从pos开始查找字符串s在当前串中的位置 |
int find(const char *s, int pos, int n) const; | 从pos开始查找字符串s中前n个字符在当前串中的位置 |
int rfind(char c, int pos = npos) const; | 从pos开始从后向前查找字符c在当前串中的位置 |
int rfind(const string &s,int pos = npos) const; | 查找成功时返回所在位置,失败返回string:: |