#include <iostream>
#include <cstring>
using namespace std;
char a[50], b[50];
int la, lb, count = 0;
void input_data()
{
cin >> a;
cin >> b;
}
void solve()
{
bool match;
la = strlen(a);
lb = strlen(b);
for (int i = 0; i <= lb - la; ++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;
}
以上代码摘自书中例题,但是编译器报错,显示如下:
将 count 改为 cnt 后编译通过。具体原因未知。