每个内部使用字符串时发生运行时错误

光头

在此代码中,我收到以下运行时错误:

抛出'std :: out_of_range'实例后调用终止方法
what():basic_string :: replace bash:第1行:9471已中止
(核心转储)

就我而言,这意味着我已经在for循环中操纵了向量,而我还没有这样做。

#include <iostream>
#include <string>
#include <vector>


std::string replace(std::string text,
                  std::string find,
                  std::string replace)
{
    return(text.replace(text.find(find), find.length(), replace));
}

int main()
{
    std::vector<std::string> mylist={"col1","cell2","col3","cell4","col5"};

    for(const std::string item: mylist)
    {
        std::cout<<replace(item,"cell","item")<<std::endl;
    }

    return 0;
}
迈奥

您正在尝试在字符串中替换cell没有这样的子字符串,因此将返回(通常是,但是特定于实现)。之后,将传递到导致异常的位置。itemcol1text.find()string::npos((size_t) -1)string::nposreplace()

像这样重写您的函数:

std::string replace(std::string text,
                std::string find,
                std::string replace)
{
    size_t idx = text.find(find);

    if(idx == std::string::npos)
        return(text);

    return(text.replace(idx, find.length(), replace));
}

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在struct中使用字符串时出现运行时错误

将数组强制转换为字符串枚举器时发生运行时错误

使用字符串插值插入常量是否有运行时开销?

在运行时使用字符串/变量访问常量

Excel VBA - 使用 .ModifyAppliesTo 和运行时错误 1004(尝试插入太长的字符串时出现问题?)

在Scala中使用anorm时发生运行时错误

读取字符串向量时超出范围运行时错误

运行时错误:浏览#N / A字符串时显示13

CLng具有文本字符串时,运行时错误13不匹配

运行时错误。整数转换为字符串

C字符串裁剪运行时错误

使用联合打印字符串时出现运行时错误。它不打印字符串值但打印整数值

在运行时使用字符串创建T且不会丢失智能感知

在Java中连接空字符串时,在编译和运行时会发生什么?

为什么这会导致运行时错误?(使用HashMap查找字符串的字数)

在运行时从base64编码的字符串中应用字体

使用字符串格式时出现类型错误

对于每个调用,在运行时将连接字符串传递给Entity Framework

EF Core和LINQ-如何在运行时使用字符串变量构建动态的Where子句?

Java文字字符串:运行时错误的字符集

通过添加值更改字符串中的字符会导致运行时错误

运行时异常:执行doInBackground()时发生错误

扩展Listadapter时发生运行时错误

投射对象时发生运行时错误

从逆序C ++访问向量时发生运行时错误

调用方法时发生运行时错误?

USB调试Android时发生运行时错误

使用嵌入式数组解析JSON字节流时发生运行时错误

使用结尾的逗号解析JSON数组和映射元素时发生运行时错误