注册 登录
编程论坛 C++教室

在string类型中函数at()的用法是什么?在此题中使用函数at()为什么只输出前半部分

蛤蟆001 发布于 2016-09-23 22:31, 2402 次点击
#include<iostream>
#include<string>
using namespace std;
int main(){
    string s("some string");//申明一个字符串变量s,并初始化为“some string"
    for (string::size_type ix=0;ix!=s.size();++ix)//给函数size_type定义一个变量ix,并初始化ix=0;当ix等于s的最后一个字符时,跳出循环。
    {
        cout<<s[ix]<<endl;
    }
    for(string::size_type index=0;index!=s.size ();++index){
        cout<<s.at (index)<<endl;
    }
    return 0;
}
执行结果;

o
m
e

s
t
r
i
n
g
s
o
m
e

s
t
r
i
n
g
Press any key to continue
3 回复
#2
rjsp2016-09-23 23:43
在此题中使用函数at()为什么只输出前半部
------ 我眼拙,没看出只有前半部

at比operator[]多个下标范围检查,其它没区别
#3
仰望星空的2016-09-25 10:01
是第一个cout没有输出那个s,因为你循环中是++ix的缘故吧~
at用的应该没有问题。
#4
书生牛犊2016-09-27 22:16
回复 3楼 仰望星空的
for(1;2;3)  3的语句块是等函数体执行完以后才执行的。++ix;和ix++ 没区别的在这里
然后我也先不捅为什么会少了s,于是我复制代码测试了一下。
只有本站会员才能查看附件,请 登录


果然

1