c++小问题,一分钟就能搞定,帮帮忙!!

来源:百度知道 编辑:UC知道 时间:2024/05/05 17:01:06
判断子串的函数,有点小问题,给改改主函数吧,谢谢了!!
#include<iostream.h>
#include<string.h>
void main()
{
void zichuan(char a[],char b[]);
char a[50],b[50];
cout<<"请输入字符串a\n";
cin>>a;
cout<<"请输入字符串b\n";
cin>>b;
zichuan(a,b);
}

void zichuan(char a[],char b[])//其中a和b想要接收主函数中输入的字符串的实际长度,而不是50该怎么改啊??
{
int t=0,m=1;
if(sizeof(a)>sizeof(b))//
cout<<"a不是b的子串\n";
else
{
for(int i=0;i<sizeof(a)-1;i++)
{
for(int j=t;j<=sizeof(b);j++)
if(a[i]==b[j])
{
t=j+1;
break;
}
if(j>sizeof(b))
{m=0;break;}
}
if(m)
cout<<"a是b的子串\n";
else
cout<<"a不是b的子串\n";
}
}

#include<iostream>
#include<string>
using namespace std;//用STRING类的话要用有这句话
void zichuan(char a[],char b[]);//函数说明要写在外面
void main()
{

char a[50],b[50];
cout<<"请输入字符串a\n";
cin>>a;
cout<<"请输入字符串b\n";
cin>>b;
zichuan(a,b);
}

void zichuan(char a[],char b[])//其中a和b想要接收主函数中输入的字符串的实际长度,而不是50该怎么改啊??
{
int t=0,m=1;
if(sizeof(a)>sizeof(b))//
cout<<"a不是b的子串\n";
else
{
for(int i=0;i<sizeof(a)-1;i++)
{
for(int j=t;j<=sizeof(b);j++)
if(a[i]==b[j])
{
t=j+1;
break;
}
if(j>sizeof(b))
{m=0;break;}
}
if(m)
cout<<"a是b的子串\n";
else
cout<<"a不是b的子串\n";
}
}
这样就可以了。我在6.0里面实验成功

void main()
{
void zichuan(