使用引用形参返回在string对象中某个指定字符第一次出现的位置。同时,返回该字符出现的总次数
#include <iostream>
#include <string>
using namespace std;
//返回s中c第一次出现的位置索引
//引用形参occurs负责统计c出现的总次数
int find_char(const string& s, char c, int& occurs)
{
//第一次出现的位置(如果有的话)
//auto能让编译器替我们去分析表达式所属的类型
auto ret = s.size();
occurs = 0; //设置表示出现次数的形参的值
//decltype选择并返回操作数的数据类型
//在此过程中,编译器分析表达式并得到它的类型,却不实际计算表达式的值
for (decltype(ret) i = 0; i != s.size(); ++i)
{
if (s[i] == c)
{
if (ret == s.size())
ret = i;//记录c第一次出现的位置
++occurs;
}
}
return ret;
}
int main()
{
char a = 'c';
int c;
string s1 = "asdfacgbcfdgtnbhcdetgfdchcc";
const int& result = find_char(s1, 'c', c);
//find_char(s1, 'c', c);
cout << "出现c的位置:" << result << "\t" << "出现c的次数:" << c << endl;
}
执行结果如下图所示