当前位置:首页 C++ > 正文

C++中string类及其函数的讲解

作者:野牛程序员:2023-05-19 18:12:24 C++阅读 2814

在C++中,string类是标准库提供的一个非常有用的字符串处理类。它定义在 <string> 头文件中,并且是在 std 命名空间下的。

string类提供了许多成员函数,用于字符串的操作和处理。下面是一些常用的string类函数的讲解:

  1. 构造函数:

    • string():默认构造函数,创建一个空字符串。

    • string(const char* s):使用C风格的字符串s创建一个string对象。

    • string(const string& str):复制构造函数,使用另一个string对象str创建一个新的string对象。

  2. 赋值和拷贝:

    • operator=:赋值操作符,用一个字符串赋值给另一个字符串。

    • assign(const char* s):用C风格的字符串s赋值给当前字符串。

    • assign(const string& str):用另一个string对象str赋值给当前字符串。

  3. 访问和修改:

    • operator[]:通过下标访问字符串中的字符。

    • at(size_t pos):通过位置访问字符串中的字符,带有边界检查。

    • front():返回字符串的第一个字符。

    • back():返回字符串的最后一个字符。

    • c_str():返回一个以null结尾的C风格字符串。

    • data():返回一个指向字符数组的指针。

    • push_back(char c):在字符串末尾添加字符c。

    • pop_back():删除字符串末尾的字符。

  4. 字符串操作:

    • append(const char* s):将C风格字符串s追加到当前字符串的末尾。

    • append(const string& str):将另一个string对象str追加到当前字符串的末尾。

    • insert(size_t pos, const char* s):在指定位置pos插入C风格字符串s。

    • insert(size_t pos, const string& str):在指定位置pos插入另一个string对象str。

    • erase(size_t pos, size_t len):从指定位置pos开始删除长度为len的字符。

    • replace(size_t pos, size_t len, const char* s):替换从指定位置pos开始长度为len的字符为C风格字符串s。

    • replace(size_t pos, size_t len, const string& str):替换从指定位置pos开始长度为len的字符为另一个string对象str。

    • substr(size_t pos, size_t len):返回从指定位置pos开始长度为len的子字符串。

  5. 容量和属性:

    • length()size():返回字符串的长度。

    • empty():检查字符串是否为空。

    • clear():清空字符串。

    • resize(size_t n):调整字符串的长度为n。

    • capacity():返回字符串的容量。

    • reserve(size_t n):为字符串分配至少n个字符的存储空间。

  6. 比较和查找:

    • compare(const string& str):比较当前字符串与另一个string对象str的大小。

    • find(const char* s, size_t pos = 0):在当前字符串中从位置pos开始查找C风格字符串s的第一次出现,并返回其位置。

    • find(const string& str, size_t pos = 0):在当前字符串中从位置pos开始查找另一个string对象str的第一次出现,并返回其位置。

    • rfind(const char* s, size_t pos = npos):在当前字符串中从位置pos开始逆向查找C风格字符串s的第一次出现,并返回其位置。

    • rfind(const string& str, size_t pos = npos):在当前字符串中从位置pos开始逆向查找另一个string对象str的第一次出现,并返回其位置。

这只是string类提供的一部分常用函数,还有其他函数可以进行更多复杂的操作。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击