C++ primer(第五版) 练习 6.17 个人 code

来源:互联网 发布:奥尼尔vs霍华德数据 编辑:程序博客网 时间:2024/06/16 20:37


C++ primer(第五版) 练习 6.17

题目:编写一个函数,判断string对象中是否含有大写字母。
编写另一个函数,把string对象全部改成小写形式。
在这两个函数中你使用的形参类型相同吗?为什么?

答:

判断是否包含大写的不用修改实参的值,所以为const string 的引用

全部改成小写形式的需要修改实参的值,所以为 普通的string 引用。

#include <iostream>#include <string>#include <cctype>using std::cout;using std::cin;using std::endl;using std::string;using std::getline;//判断是否包含大写字母bool is_upper(const string &s){for (auto a : s){if (isupper(a))return true;}return false;}//把string对象全部必成小写形式void to_lower(string &s1){for (auto &a : s1){a=tolower(a);}}int main(){string str,tmpstr;cout << "请输入字符串:";getline(cin, str);tmpstr = str;if (is_upper(str))cout << str << "包含大写字母" << endl;elsecout << str << "不包含大写字母" << endl;to_lower(str);cout << tmpstr << "全部改为小写字母为:" << str<< endl;return 0;}

执行结果:



0 0