(自己做的,多少有不靠谱、较应付的地方,仅供参考,如有错误欢迎指正)
3.6
#include<string>
using std::string;
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
string s("Hello World!!!");
for(auto &c: s)
c = 'X';
cout << s << endl;
return 0;
}
如果是char c那么不会改变原字符串,
如果是char &c效果应该和上一题一样。
(验证正确)
遍历序列中的所有元素range for要比while和传统for方便,而且可读性更好。
3.9
对于这种情况,编译器不会检查下标的合法性,能编译,但是输出结果无法预知。
3.10
#include<string>
using std::string;
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main()
{
string s;
getline(cin , s);
for(auto c: s)
if(!ispunct(c))
cout << c;
cout << endl;
return 0;
}
3.11
合法。应该是底层const