我们定义一个名为find_char的函数,它返回string对象中某个指定字符第一次出现位置并返回字符出现总次数。
在qt5中的程序代码如下:
chapter6.h:
#ifndef CHAPTER6_H
#define CHAPTER6_H
#include <string>
std::string::size_type find_char(const std::string &s,char c,std::string::size_type &occurs);
#endif // CHAPTER6_H
main.c
#include <QCoreApplication>
#include <iostream>
#include "chapter6.h"
//using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
/*****************************************************************/
std::string str="helloworld";
std::string::size_type ocrtime=0;
auto index=find_char(str,'l',ocrtime);
std::cout<<ocrtime<<" "<<index<<std::endl;
/*****************************************************************/
return a.exec();
}
/********************************************/
//查找字符串s中是否有字符c,返回第一次出现的位置,引用参数返回出现的次数
std::string::size_type find_char(const std::string &s,char c,std::string::size_type &occurs)
{
auto ret = s.size();
for(decltype(ret)i=0;i!=s.size();i++){
if(s[i]==c){
if(ret==s.size())
ret=i;
occurs++;
}
}
return ret;
}
最后输出是3 2.
总结:这里使用string时前面要加上std(也可在前面加上using namespace std;不推荐)
。