字符串下标超出范围

时间:2015-01-31 19:08:46

标签: c++ arrays string loops

我正在尝试在其他单词后显示准确的单词,其中包含8个字符。不幸的是,显示有关字符串下标超出范围的错误。我知道问题在于循环,但我不知道如何解决它。为什么“行[j]!='('”不能工作?

getline(myFile, line);
size_t pos = line.find(arrayTypeOne[i]); //finding position
if (pos != string::npos)
{
    for (int j = pos + 9; line[j] != '('; j++)
        cout << line[j];
}//if

我解决了。问题出在不同的地方。我很抱歉,下次我会三思而后行。感谢您的帮助

1 个答案:

答案 0 :(得分:0)

字符串中可能没有'('。在这种情况下,您不断检查j变量,而不检查j变量是否已超过{{1} }。

我建议添加条件,检查line.length()是否超过字符串的长度。

编辑1:再次搜索 你能避免循环并使用:

j
相关问题