C ++ string std :: out_of_range:basic_string :: substr

时间:2014-02-01 20:56:02

标签: c++ string substr

我正在创建一个带有函数的程序,该函数检查数组中字符串的相邻字符。我使用substring函数(以及其他内容)执行此操作,但我需要一种方法来使用if语句来避免空字符串,例如查找字符串中第一个字符的尾随字符。我是新手使用字符串而不是char[]。我想要一些基本上这样做:

if (!Empty ( strings[1].substr(0-1,0) )) {
     std::cout<<"char to left of substr(0)="<<strings[1].substr(0-1,0);
}

当我尝试引用不存在的char时,我收到运行时错误:

libc++abi.dylib: terminating with uncaught exception of type std::out_of_range:
basic_string::substr
Abort trap: 6

1 个答案:

答案 0 :(得分:2)

哦,从索引-1开始的子字符串,长度为0。

或者,由于第一个参数是无符号的,因此它从std::numeric_limits<size_t>::max()开始。

反正。