原代码如下
int main()
{
string s;
getline(cin, s);
for (auto &c : s)
c = 'X';
cout << s << endl;
return 0;
}
就是把字符串里的字符都替换成‘X’。现在的问题是,把auto
改成char
会怎样?
我试了一下,什么问题都没有,这个题目不会这么无聊吧?
你是在VS里头运行的吧,要视你的编译器而定的,我在Dev C++中运行你这段代码就直接报错了。C++ Primer第五版是增加了C++11的支持的,在C++11中auto
是让程序自己推断变量类型的,本来你这个c
变量就是会被判断成char
的,所以你直接自己把它定义成char
也没有问题啊。关于auto
关键字你可以参考:http://www.ituring.com.cn/article/39533