STL——string

    xiaoxiao2021-04-15  285

    string的声明: 1) string s; // 生成一个空字符串s 2) string s(str) ; // 拷贝构造函数生成str的复制品 3) string s(str, stridx); // 将字符串str内"始于位置stridx"的部分当作字符串的初值 4) string s(str, stridx, strlen) ; // 将字符串str内"始于stridx且长度顶多strlen"的部分作为字符串的初值 5) string s(cstr) ; // 将C字符串(以NULL结束)作为s的初值 6) string s(chars, chars_len) ; // 将C字符串前chars_len个字符作为字符串s的初值。 7) string s(num, ‘c’) ; // 生成一个字符串,包含num个c字符 8) string s(“value”); string s=“value”; // 将s初始化为一个字符串字面值副本 9) string s(begin, end); // 以区间begin/end(不包含end)内的字符作为字符串s的初值 10) s.~string(); //销毁所有字符,释放内存 string的相关操作 string s; 1) s.empty(); // s为空串 返回true 2) s.size(); // 返回s中字符个数 类型应为:string::size_type 3) s[n]; // 从0开始相当于下标访问 4) s1+s2; // 把s1和s2连接成新串 返回新串 5) s1=s2; // 把s1替换为s2的副本 6) v1==v2; // 比较,相等返回true 7) `!=, <, <=, >, >=` 惯有操作 任何一个大写字母都小于任意的小写字母 相关函数 1) =, s.assign() // 赋以新值 2) swap() // 交换两个字符串的内容 3) +=, s.append(), s.push_back() // 在尾部添加字符 4) s.insert() // 插入字符 5) s.erase() // 删除字符 6) s.clear() // 删除全部字符 7) s.replace() // 替换字符 8) + // 串联字符串 9) ==,!=,<,<=,>,>=,compare() // 比较字符串 10) size(),length() // 返回字符数量 11) max_size() // 返回字符的可能最大个数 12) s.empty() // 判断字符串是否为空 13) s.capacity() // 返回重新分配之前的字符容量 14) reserve() // 保留一定量内存以容纳一定数量的字符 15) [ ], at() // 存取单一字符 18) copy() // 将某值赋值为一个C_string 19) c_str() // 返回一个指向正规C字符串(C_string)的指针 内容与本string串相同 有’\0’ 20) data() // 将内容以字符数组形式返回 无’\0’ 21) s.substr() // 返回某个子字符串 22) begin() end() // 提供类似STL的迭代器支持 23) rbegin() rend() // 逆向迭代器 24) get_allocator() // 返回配置器

    重要函数

    s.assign(str); s.assign(str,1,3); // 如果str是"iamangel" 就是把"ama"赋给字符串 s.assign(str,2,string::npos); // 把字符串str从索引值2开始到结尾赋给s s.assign("gaint"); // 不说 s.assign("nico",5); // 把’n’ ‘I’ ‘c’ ‘o’ ‘\0’赋给字符串 s.assign(5,'x'); // 把五个x赋给字符串 s.substr(); // 返回s的全部内容 s.substr(11); // 从索引11往后的子串 s.substr(5,6); // 从索引5开始6个字符

    用STL里的algorithm:

    //查字符 find(str.begin(), str.end(), 'j'); //查字符串 if(str1.find(str2) != string::npos) { ... }; //string类的查找函数: int find(char c, int pos = 0) const;//从pos开始查找字符c在当前字符串的位置 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 find(const string &s, int pos = 0) const;//从pos开始查找字符串s在当前串中的位置 //查找成功时返回所在位置,失败返回string::npos的值 int rfind(char c, int pos = npos) const;//从pos开始从后向前查找字符c在当前串中的位置 int rfind(const char *s, int pos = npos) const; int rfind(const char *s, int pos, int n = npos) const; int rfind(const string &s,int pos = npos) const; //从pos开始从后向前查找字符串s中前n个字符组成的字符串在当前串中的位置,成功返回所在位置,失败时返回string::npos的值 int find_first_of(char c, int pos = 0) const;//从pos开始查找字符c第一次出现的位置 int find_first_of(const char *s, int pos = 0) const; int find_first_of(const char *s, int pos, int n) const; int find_first_of(const string &s,int pos = 0) const; //从pos开始查找当前串中第一个在s的前n个字符组成的数组里的字符的位置。查找失败返回string::npos int find_first_not_of(char c, int pos = 0) const; int find_first_not_of(const char *s, int pos = 0) const; int find_first_not_of(const char *s, int pos,int n) const; int find_first_not_of(const string &s,int pos = 0) const; //从当前串中查找第一个不在串s中的字符出现的位置,失败返回string::npos int find_last_of(char c, int pos = npos) const; int find_last_of(const char *s, int pos = npos) const; int find_last_of(const char *s, int pos, int n = npos) const; int find_last_of(const string &s,int pos = npos) const; int find_last_not_of(char c, int pos = npos) const; int find_last_not_of(const char *s, int pos = npos) const; int find_last_not_of(const char *s, int pos, int n) const; int find_last_not_of(const string &s,int pos = npos) const;

    最新回复(0)