gpt4 book ai didi

c++ - 实现子字符串 C++

转载 作者:太空宇宙 更新时间:2023-11-04 15:28:41 24 4
gpt4 key购买 nike

如何在 C++ 中实现返回指向 char 的指针的子字符串? (将指针指向第一个字母)

说一些类似char* substr(char* c, int pos, int lenght)

最佳答案

我使用 std::string 的方法类。


编辑:

say something like char* substr(char* c, int pos, int lenght)

这不是一个可以很好地实现的功能。要创建子字符串,您需要内存:

  • 与原始字符串相同的内存:您是要覆盖原始字符串吗?原始字符串是否可写?

  • 新内存:调用者是否会在它从您的 substr 函数接收到的指针上调用 delete[] 运算符(如果没有,则会发生内存泄漏)?

  • 全局内存:你可以在全局内存中保留一个固定长度的缓冲区,但这是各种各样的问题(可能不够长,当别人调用你的substr时会被覆盖).

正确的做法是返回一个std::string 实例,这就是string::substr 方法所做的,如Graphics Noob's answer 所示。 ,因为 std::string 实例(与 char* 实例不同)将管理其自身内存的生命周期;如果您随后想要来自 std::string 实例的 char* 实例,您可以使用 c_str() 方法获取它。

关于c++ - 实现子字符串 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com