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 统计字串在主串中出现的次数。
相关文章推荐
- 【编程题目】二维数组中的查找(C++实现)
- 编程实现字符串中子串的查找
- 编程练习------C/C++分别实现字符串与整数的转换
- 编程实现字符串中子串的查找
- 在字符串中查找连续重复的最长子串的C++实现
- C++实现字符串中数字字串求和
- 查找字符串(C++实现)
- 古娜拉黑暗之神(编程实现字符串中子串的查找)
- 编程实现查找两个字符串的最大公共子串 示例:"aocdfe"和"pmcdfa"最大公共子串为"cfd"
- 求一个字符串中连续出现次数最多的字串 c++实现方法
- C++面试题之编程实现
- Android编程实现从字符串中查找电话号码的方法
- 【Cuda并行编程之一】二分查找的探究以及Cuda的简单实现&&相关面试题介绍
- C/C++面试题:编程实现快速排序
- vs2013 c++ 编程CString字符串查找替换后变乱码的原因及解决方法
- C++实现多文件中查找多个字符串
- C++实现多文件中查找多个字符串
- 面试题:编程实现将字符串的各个单词翻转
- C++【String类】String查找单个字符,查找字符串的函数实现
- C++字符串编程面试题常见题目源程序