一、下面的这个函数虽然是合法的,但是不算特别有用。指出它的局限性并设法改善。
bool is_empty(string& s) { retrun s.empty();}
解析:字符串s在函数中无需修改,所以最好是加上const 表示常量引用。
将程序变为:bool is_empty(const string& s) { retrun s.empty();}
二、编写一个函数,判断string对象是否含有大写字母。编写另一个函数,把string对象全都改写为小写形式。在这两个函数中使用的形参类型相同吗?为什么?
(1)判断大写字母
#include <iostream>
#include <string>
#include <vector>
using namespace std;
bool My_reset(string const &My_string)//函数的声明及定义,My_string无需在函数中修改,所以使用常量引用。
{
for (unsigned int i = 0; i < My_string.size(); i++)
{
if (My_string[i] >= 'A' && My_string[i] <= 'Z')//利用ASCII码进行判断
{
return true;
}
}
return false;//返回目标字符出现的首位置
}
int main()
{
cout << "请输入目标字符串:";
string string_1;