C++ Primer(5th Edition)里关于string的一道习题

libraco
  • 760

原代码如下

int main()
{
    string s;
    getline(cin, s);
    for (auto &c : s)
        c = 'X';
    cout << s << endl;
    return 0;
}

就是把字符串里的字符都替换成‘X’。现在的问题是,auto改成char会怎样?
我试了一下,什么问题都没有,这个题目不会这么无聊吧?

回复
阅读 3.8k
2 个回答
✓ 已被采纳

你是在VS里头运行的吧,要视你的编译器而定的,我在Dev C++中运行你这段代码就直接报错了。C++ Primer第五版是增加了C++11的支持的,在C++11中auto是让程序自己推断变量类型的,本来你这个c变量就是会被判断成char的,所以你直接自己把它定义成char也没有问题啊。关于auto关键字你可以参考:http://www.ituring.com.cn/article/39533

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏