字符串匹配

来源:互联网 发布:微信公众号推荐 知乎 编辑:程序博客网 时间:2024/06/07 03:36

问题描述:读入两个字符串a和b,判断a是否是b的子串。如果是,计算a在b中出现了几次。

例如:如果a="aba", b="ababab",则a在b中出现了两次。如果a="abc",b="ababab",则a不是b的子串。

代码如下:

#include <iostream>#include <cstring>using namespace std;char a[100], b[100];int la, lb, count;   //定义两个字符串的长度和计数器 void input_data()//输入数据的过程 {cin >> a;cin >> b;}void solve()//解决问题的过程 {bool match;//表示从某一位置开始能否匹配 la = strlen(a);lb = strlen(b);count = 0;for (int i=0; i<=lb-la; i++)// 循环变量i表示起始的位置 {match = true;for (int j=0; j<la; j++){if (a[j]!= b[i+j])//如果在某一位置无法匹配 {match = false;break;}}if (match)count++;}}void output_data()//输出结果 {if (count == 0)cout << "a不是b的子串"<< endl;elsecout << "a在b中出现了"<< count << "次"<< endl; }int main(){input_data();solve();output_data();return 0;}


0 0
原创粉丝点击