您可以为其本身分配std :: string的子字符串吗?

bgoldst

我最近发现有必要std::string用自身的子字符串替换的内容。我认为在这里调用的最合逻辑的函数是http : //www.cplusplus.com/reference/string/string/assign/

子字符串(2)      字符串和分配(const string&str,size_t subpos,size_t sublen);
    
     复制从字符位置subpos开始并跨越sublen字符的str的部分(如果str太短或sublen是string :: npos,则跨越str的字符)。

     str
         另一个字符串对象,其值将被复制或移动。

     subpos
         str中第一个字符作为子字符串复制到对象中的位置。如果此长度大于str的长度,则抛出out_of_range。注意:str中的第一个字符由0表示(不是1)。

     sublen
         要复制的子字符串的长度(如果字符串较短,则复制尽可能多的字符)。string :: npos的值表示直到str结束的所有字符。

但是,我不确定这是否允许,或者是否会破坏字符串数据。我知道memcpy(),例如,不允许(或者至少不保证不发生损坏)用其自身的一部分覆盖内存区域(请参阅memcpy()vs memmove())。但是我不知道上面的方法是否有相同的限制。

更笼统地说,如果我本来能够自己弄清楚这个问题的答案,您能发表评论吗?我没有什么链接到该品牌的文档中就清楚地知道什么这个问题的答案是,除了可能的限定词“另一个”在的描述str参数(“另一个字符串对象”),这似乎意味着它不能在对象,虽然我不觉得这是毫不含糊的。这是文档中的弱点吗?

轨道轻赛

不。

此操作由[string :: assign] / 4定义:

basic_string& assign(const basic_string& str, size_type pos,
    size_type n = npos);

效果:确定rlen要分配为nandstr.size() - pos和call中较小者的字符串的有效长度assign(str.data() + pos rlen)

错字

然后:

basic_string& assign(const charT* s, size_type n);

效果:将所控制的字符串替换为*this一个长度字符串,该字符串的n元素是所指向的元素的副本s

关于这是否str.assign(str, 0)完全安全并没有任何说明(特别是,我们无法知道何时复制每个字符!)。

因此,我强烈建议您避免这样做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

std :: hash <std :: string>可以为不同的字符串返回相同的值吗?

来自分类Dev

我可以从已知位置开始并以给定字符结束的字符串中删除子字符串吗?

来自分类Dev

您可以拆分字符串并保留拆分字符吗?

来自分类Dev

我们可以为数组分配更长的字符串吗?

来自分类Dev

awk不分配字符串或子字符串

来自分类Dev

awk不分配字符串或子字符串

来自分类Dev

您可以在子活动中使用构造函数来更改“父母活动字符串”变量吗?

来自分类Dev

您可以在Swift中评估字符串吗?

来自分类Dev

您可以求和mysql中的字符串吗?

来自分类Dev

在Java中,可以将负数与子字符串一起使用吗?

来自分类Dev

bash子字符串替换可以使用正则表达式吗?

来自分类Dev

我可以用子字符串过滤javascript对象数组吗?

来自分类Dev

可以使用变量批量提取子字符串吗?

来自分类Dev

可以使用正则表达式获取子字符串吗?

来自分类Dev

我可以使用格式而不使用子字符串吗?

来自分类Dev

可以在初始调用时提取innerHTML的子字符串吗?

来自分类Dev

str.translate 可以用于子字符串替换吗?

来自分类Dev

我们可以取一个子字符串的 const ref 吗?

来自分类Dev

现在可以为std :: string分配数字了吗?

来自分类Dev

'\'可以在Python字符串中吗?

来自分类Dev

使用std :: search搜索std :: string中的子字符串

来自分类Dev

可以在堆栈上分配const静态字符串吗?

来自分类Dev

返回子字符串的内容与返回子字符串本身

来自分类Dev

字典函数:您可以为“第 2 层”函数分配一个参数吗?

来自分类Dev

如何找到连接 ASCII 和 std::string 的子字符串?

来自分类Dev

可以将字符串转换为List <string>简化吗?

来自分类Dev

您可以在Swift字符串插值中使用字符串/字符文字吗?

来自分类Dev

您可以为CSS样式添加可选的子元素吗?

来自分类Dev

有效地检查并替换子字符串-我可以在这里提高性能吗?

Related 相关文章

  1. 1

    std :: hash <std :: string>可以为不同的字符串返回相同的值吗?

  2. 2

    我可以从已知位置开始并以给定字符结束的字符串中删除子字符串吗?

  3. 3

    您可以拆分字符串并保留拆分字符吗?

  4. 4

    我们可以为数组分配更长的字符串吗?

  5. 5

    awk不分配字符串或子字符串

  6. 6

    awk不分配字符串或子字符串

  7. 7

    您可以在子活动中使用构造函数来更改“父母活动字符串”变量吗?

  8. 8

    您可以在Swift中评估字符串吗?

  9. 9

    您可以求和mysql中的字符串吗?

  10. 10

    在Java中,可以将负数与子字符串一起使用吗?

  11. 11

    bash子字符串替换可以使用正则表达式吗?

  12. 12

    我可以用子字符串过滤javascript对象数组吗?

  13. 13

    可以使用变量批量提取子字符串吗?

  14. 14

    可以使用正则表达式获取子字符串吗?

  15. 15

    我可以使用格式而不使用子字符串吗?

  16. 16

    可以在初始调用时提取innerHTML的子字符串吗?

  17. 17

    str.translate 可以用于子字符串替换吗?

  18. 18

    我们可以取一个子字符串的 const ref 吗?

  19. 19

    现在可以为std :: string分配数字了吗?

  20. 20

    '\'可以在Python字符串中吗?

  21. 21

    使用std :: search搜索std :: string中的子字符串

  22. 22

    可以在堆栈上分配const静态字符串吗?

  23. 23

    返回子字符串的内容与返回子字符串本身

  24. 24

    字典函数:您可以为“第 2 层”函数分配一个参数吗?

  25. 25

    如何找到连接 ASCII 和 std::string 的子字符串?

  26. 26

    可以将字符串转换为List <string>简化吗?

  27. 27

    您可以在Swift字符串插值中使用字符串/字符文字吗?

  28. 28

    您可以为CSS样式添加可选的子元素吗?

  29. 29

    有效地检查并替换子字符串-我可以在这里提高性能吗?

热门标签

归档