编写一个函数,判断string对象中是否含有大写字母。编写另一个函数,把string对象全都改成小写形式。在这两个函数中你使用的形参类型相同么?为什么?
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
bool isbig(const string &s);
void changea(string &s);
int main()
{
string s1, s2;
cin >> s1 >> s2;
string::size_type p=isbig(s1);
cout << p << endl;
changea(s2);
cout << s2 << endl;
return 0;
}
bool isbig(const string &s)
{
for (string::size_type i = 0; i != s.size(); ++i)
{
if (isupper(s[i]))
{
return 1;
break;
}
else
return 0;
}
}
void changea(string &s)
{
for (string::size_type i = 0; i != s.size(); ++i)
s[i] = tolower(s[i]);
}
不相同,const string &是不能通过形参来改变实参的,是常数引用;而string &则是可以通过实参的引用改变实参的值。