版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/rl529014/article/details/62117916
要求:
编程实现,在主串中,查找字串是否出现,打印出出现的位置,并统计出现的次数。
实现代码:
void FindSubString(char* mainStr, char* subStr)
{
if(mainStr == NULL)
{
qDebug()<<"mainStr NULL";
return ;
}
if(subStr == NULL)
{
qDebug()<<"subStr NULL";
return ;
}
const char* mStr = mainStr;
const char* sStr = subStr;
qDebug()<<"Main Str:"<<mStr ;
qDebug()<<"Sub Str:"<<sStr;
int mainLen = strlen(mStr);
int subLen = strlen(subStr);
if(mainLen < subLen)
{
qDebug()<<"MainStr Less Than SubStr";
return ;
}
int SubCount = 0; //记录字串在主串中出现的次数
for(int i = 0 ; i < mainLen ; i++)
{
int flags = true;
if(mStr[i] == sStr[0])
{
int temp = i;
for(int j = 0 ; j < subLen ; ++j)
{
if(mStr[++temp] != sStr[j])
{
flags = false;
}
}
if(flags == false)
{
SubCount++;
qDebug()<<"i = " << i;
}
}
}
qDebug()<<"SubStr Count: " << SubCount <<endl;
}
运行截图:
解析:
1、参数mainStr为主串,参数subStr为字串。
2、首先需要判断主串和字串是否有效,如果有效,再继续往下进行判断。
3、判断字串的长度是否小于等于主串,字串字串比主串还长,停止往下判断。
4、在满足2和3的前提下,判断子串是否出现在主串中,如果出现,则打印位置,并使用变量SubCount 统计字串在主串中出现的次数。