标题:在string类型中函数at()的用法是什么?在此题中使用函数at()为什么只输出 ...
只看楼主
蛤蟆001
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-9-2
结帖率:70%
已结贴  问题点数:10 回复次数:3 
在string类型中函数at()的用法是什么?在此题中使用函数at()为什么只输出前半部分
#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
搜索更多相关主题的帖子: include return 字符串 
2016-09-23 22:31
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
在此题中使用函数at()为什么只输出前半部
------ 我眼拙,没看出只有前半部

at比operator[]多个下标范围检查,其它没区别
2016-09-23 23:43
仰望星空的
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:50
专家分:248
注 册:2015-9-28
得分:4 
是第一个cout没有输出那个s,因为你循环中是++ix的缘故吧~
at用的应该没有问题。
2016-09-25 10:01
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
得分:4 
回复 3楼 仰望星空的
for(1;2;3)  3的语句块是等函数体执行完以后才执行的。++ix;和ix++ 没区别的在这里
然后我也先不捅为什么会少了s,于是我复制代码测试了一下。


果然


φ(゜▽゜*)♪
2016-09-27 22:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-469125-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.175681 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved