//引用形参可以一次返回多个值 #include<iostream> #include<string> using namespace std; //find_char()函数,引用的是 s 的形参,返回要查找的字符的位置,而通过引用ct,可以返回要查找的字符的个数,返回给m。 string::size_type find_char(const string &s,char ch,unsigned int &ct) { //尽量将函数不会改变的形参定义成常量引用 auto ret=s.size(); for(decltype(ret) i=0;i<s.size();i++) { if(s[i]==ch) { if(ret==s.size()) ret=i; ct++; } } return ret; } int main() { string s; unsigned int m=0; cout<<"s:"; cin>>s; char ch='o'; auto index=find_char(s,ch,m);//定义成常量引用,就可以接受字面值 if(m==0) cout<<"没有出现字符:'"<<ch<<"',字符长度: "<<index<<endl; else cout<<"出现字符'"<<ch<<"':"<<m<<"次,第一次出现的地方:"<<index<<endl; system("pause"); return 0; }