【发布时间】:2018-12-08 13:03:55
【问题描述】:
string a;
string seq="AACCGGTT";
for (int i=0;i<seq.length();i++)
{
if (seq[i]=='T')
{
a[i]='U';
cout<<"i have turned: "<<seq[i]<<" into : "<<a[i]<<endl;
}
else
{
a[i]=seq[i];
cout<<"i have turned: "<<seq[i]<<" into : "<<a[i]<<endl;
}
}
cout<<"here: "<<a<<endl;
**
- 当我运行它打印的大代码的这一部分时
我已经把:A 变成了:A
我已经把:A 变成了:A
我已经把:C 变成了:C
我已经把:G变成了:G
我已经把:G变成了:G
我已经把:T 变成了:U
我已经把:T 变成了:U
这里:
它不返回 a 的值
**
【问题讨论】:
-
a为空。您不能只在其范围之外对其进行索引。 -
不使用
[ ],而是替换为a.at(i)='U';和a.at(i)=seq[i];。然后你会看到having an exception thrown所犯的错误。