【发布时间】:2015-03-31 01:58:36
【问题描述】:
我正在尝试在另一个单词之后显示准确的单词,它有 8 个字符。不幸的是,显示字符串下标超出范围的错误。我知道问题出在循环上,但我不知道如何解决。为什么 "line[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
我解决了。问题出在不同的地方。非常抱歉,下次我会三思而后行。感谢您的帮助
【问题讨论】:
-
您意识到没有什么可以限制
j变量越过字符串的末尾。 -
使用笔和纸,以 10 个字符的字符串为例,
pos变量将设置为 0。此外,字符串中没有 '('。 -
我愿意,但是符号“(”在第 21 位的行(我的字符串)中,然后它应该会中断循环
-
“它应该打破循环”,如果字符串中没有'('怎么办?你的程序是否生成了字符串?它是一个常量吗?如果不是,那么你就不能相信它的内容。