标签:字符串的匹配
问题描述:读入两个字符串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; else cout << "a在b中出现了"<< count << "次"<< endl; } int main() { input_data(); solve(); output_data(); return 0; }
标签:字符串的匹配
原文地址:http://blog.csdn.net/xiaotan1314/article/details/46431263