寻找两个字符串里的公共字串,并输出最大公共字串
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a, b;
while (cin >> a >> b)
{
for (int i = 0; i<a.size(); i++)
{
if ('A' <= a[i] && a[i] <= 'Z')
{
a[i] += 32;
}
}
for (int i = 0; i<b.size(); i++)
{
if ('A' <= b[i] && b[i] <= 'Z')
{
b[i] += 32;
}
}
if (a.size() > b.size())
{
swap(a, b);
}
int q = 0, p = 0;
for (int i = 0; i < a.size(); i++)
{
int j=0;
while (j < b.size())
{
j = b.find(a[i],j);
int z = i;
for (; j < b.size(); j++)
{
if (a[z++] == b[j])
{
p++;
}
else
{
break;
}
}
if (q < p)
{
q = p;
}
p = 0;
}
}
cout << q << endl;
}
}