算法经典题型21
字符串匹配问题1:对于字符串s和t,若t是s子串,返回t在s中的位置(t的首字符在s中对应的下标),否则返回-1。
用到的思想—蛮力法 博主用到的环境:Win7, CodeBlocks等。
一、代码
#include "iostream"
#include "cstring"
#include "stdio.h"
using namespace std;
int Strstr(char s1[], char s2[])
{
int len1 = strlen(s1);//第一个字符串长度
int len2 = strlen(s2);//第二个字符串长度
int n = 0;
for (int i = 0; i < len1; i++)
{
int k = i, j = 0; //将i的值赋给k,便于下面循环的进行
for (j; j < len2;j++,k++)
{
if (s1[k] != s2[j]) //有不同字符时,跳出循环
break;
}
if (j==len2) //如果成功匹配循环结束时,j的值为len2
{
cout << "匹配成功," << "第一次匹配的位置是:第" << i + 1 << "位" << endl;
break; //找到匹配串之后,跳出循环,如果想得到所有的匹配位置,可以注释此行。
}
}
return 0;
}
int main()
{
Strstr("rafewerwffewqrw", "fe");
return 0;
}
二、测试
总结
谢谢宝宝们的阅读,有问题的话评论@我,没问题的话点个赞再走哦~
|