string容器可以通过[]或者at()访问string的字符。
at 和[]区别 []访问越界,程序直接挂掉。at()抛出out_of_range()异常
#include <iostream>
#include <string>
#include <stdexcept>
using namespace std;
int main(int argc, char *argv[])
{
string s="hello world";
for(int i = 0; i < s.size();i++){
cout<<s[i]<<endl;
}
cout<<endl;
for(int i = 0; i < s.size();i++){
cout<<s.at(i)<<endl;
}
try{
// s[100];
s.at(100);
}
catch(out_of_range & e){
cout<<e.what();
}
return 0;
}
运行结果如下:
如果把try中的源码改为s[100]进行越界访问,运行结果如下: