C++程序,该怎么解决

C++程序
#include<iostream>
#include<string>
using namespace std;
class String
{
public:
int i,j;
char s1[30];
char s2[30];
string s3;
public:
String()
{i=j=0;}
void getstring();
void chazhao(string string,int a,int b);
};
void String::getstring()
{
cout<<"请输入一串字符\n";
  gets(s1);
cout<<"请再输入一串字符\n";
gets(s2);
}
void String::chazhao(string string,int a,int b)
{
int m,n,q=0,h,temp=0,flag;
for(i=0;i<a;i++)
for(j=0;j<b;j++)
{
flag=i;
while(s1[i]==s2[j]&&j<b&&i<a)
{
  q++;
i=i++;
j=j++;
if(s1[i]!=s2[j])
{
break;
}
}
if(q>=temp)
{
h=flag;
temp=q;
q=0;
}
}
for(m=h;m<h+temp;m++)
cout<<s1[m];
cout<<endl;
cout<<temp<<endl;
}

int main()
{
String string;
int a,b;
string.getstring();
a=strlen(string.s1);b=strlen(string.s2);
string.chazhao(string.s1,a,b);
return 0;
}





  各位大侠,给个意见呗!

------解决方案--------------------
建议把中文拼音改为因为,如chazhao改为search
------解决方案--------------------
第一:应该用代码标签贴代码,那是对别人的劳动的尊重,也是对自身修养的尊重。

第二:一个类应该专心处理自己的事情,不可以“包治百病”。处理数据的类不该去干涉IO,执行IO的类就不该去管数据处理。

第三:代码中应该包含适当的注释,让阅读者易于理解你的用意。

第四:尽管C++中对大小写敏感,String不会被误认为string,但你仍旧不该把如此常用的一个类型名拿来命名自己的类。要知道,阅读者不是机器,他们未必对大小写同样敏感。