您的位置:首页 > 编程语言 > C语言/C++

C、C++面试题:编程实现字符串中字串的查找

2017-03-15 00:44 766 查看

要求:

编程实现,在主串中,查找字串是否出现,打印出出现的位置,并统计出现的次数。

实现代码:

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 统计字串在主串中出现的次数。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: