我正在尝试创建一个从stdin读取字符串并将其存储在字符向量中的函数,并将特殊字符的位置 - (@)存储在整数向量中。给出输入将仅包含小写字母和特殊字符,即'@'。字符和整数向量都是全局的。我无法弄清楚为什么我会收到运行时错误。这是我的代码: -
vector<int> v;
vector<char> s;
inline int input() //called in main when we have to read input
{
char p=getchar();
register int i=0;
while((p>='a'&&p<='z')||(p=='@'))
{
s.push_back(p);
if (p=='@')
{
v.push_back(i);
}
p=getchar();
i++;
}
return 0;
}
答案 0 :(得分:1)
<强>而((p为H. = 'A' 和;&安培; P&LT; = 'Z')||(对=='@))强>
你没有'@'
答案 1 :(得分:1)
如果你把你在运行时得到的错误的性质放在一边会有所帮助。如果您提供导致此错误的输入示例,也会有所帮助。
一些观察结果,可能会给出一些错误原因的指示:
我也会删除你对内联和注册的使用,这些内容不太可能给你带来明显的速度提升。