欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > C++中substr用法记录

C++中substr用法记录

2024/11/30 20:46:37 来源:https://blog.csdn.net/2303_77275067/article/details/142685997  浏览:    关键词:C++中substr用法记录

在C++中,substr 是 std::string 类的一个成员函数,用于从一个字符串中提取子字符串。substr 函数的基本语法如下:

string substr(size_type pos = 0, size_type count = npos) const;

参数解释:

  1. pos

    • 类型:size_type(通常是 std::size_t
    • 含义:子字符串的起始位置。pos 是从 0 开始的索引。如果 pos 超过了字符串的长度,函数会抛出一个 std::out_of_range 异常。
  2. count

    • 类型:size_type
    • 含义:子字符串的长度。如果 count 超过了从 pos 开始的剩余字符数,子字符串将包含从 pos 开始的所有字符,直到字符串的末尾。

返回值:

  • 类型:std::string
  • 含义:返回一个包含了从 pos 开始的 count 个字符的子字符串。

使用示例:

  1. 提取从指定位置开始的子字符串

    #include <iostream>
    #include <string>int main() {std::string str = "Hello, World!";std::string sub = str.substr(7);  // 从索引 7 开始到末尾std::cout << sub << std::endl;    // 输出: World!return 0;
    }
    
  2. 提取指定长度的子字符串

    #include <iostream>
    #include <string>int main() {std::string str = "Hello, World!";std::string sub = str.substr(7, 5);  // 从索引 7 开始,提取 5 个字符std::cout << sub << std::endl;       // 输出: Worldreturn 0;
    }
    
  3. 提取从字符串末尾开始的子字符串

    #include <iostream>
    #include <string>int main() {std::string str = "Hello, World!";std::string sub = str.substr(str.size() - 6);  // 从倒数第 6 个字符开始到末尾std::cout << sub << std::endl;                // 输出: World!return 0;
    }
    
  4. 处理异常(如果起始位置超出字符串长度)

    #include <iostream>
    #include <string>int main() {std::string str = "Hello, World!";try {std::string sub = str.substr(20);  // 起始位置超出字符串长度} catch (const std::out_of_range& e) {std::cerr << "Out of range error: " << e.what() << std::endl;}return 0;
    }

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com