C语言:输入一个长字符串和一个短字符串,判断长字符串中是否含有短字符串

输入一个长字符串和一个短字符串,判断长字符串中是否含有短字符串

#include<stdio.h>
main()
{
char l[100],s[100];
int i,k=0,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;

ssum++;
}

for(j=0;;j++)
{
if(l[j]=='\0')
{
break;
}
if(sum==ssum)
{
break;
}
if(l[j]==s[k])
{
sum++;
k++;
continue;
}
else
{
if(k==0 || j==0)
{
continue;
}

k=0;
j-=1;
sum=0;
continue;
}
}


if(sum==ssum)
printf("包含"); 
else
printf("不包含"); 

}


这个比较难

第一次:没写完的,就修改了

这个不能完成循环,只是露出了一点思路,但是没表达出来

判断字符串到末尾应该是\0也用错了

#include<stdio.h>
main()
{
char l[100],s[100];
int i,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
printf("请输入一个短的字符串");
gets(s);
for(i=0;;i++)
{
if(s[i]=='\n');
break;
ssum++;
}
for(i=0;;i++)
{


if(l[i]=='\n');
break;
if(l[i]==s[j] && l[i+1]==s[j+1])
sum++;
else(l[i]==s[j] && l[i+1]!=s[j+1])
sum=0;

}

}


第二次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串\n");
gets(l);
printf("请输入一个短的字符串\n");
gets(s);
for(i=0;;i++)
{
if(s[i]=='\n');
break;
ssum++;
}
for(i=0;;i++)
{


if(l[i]=='\n');
break;
if(l[i]==s[j])
sum++;
else
sum=0;
if(sum==ssum)
break;

}
if(sum==ssum)
printf("包含");

}

第三次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串\n");
gets(l);
printf("请输入一个短的字符串\n");
gets(s);
for(i=0;;i++)
{
if(s[i]=='\n');
break;
ssum++;
}
printf("%d\n",ssum);
for(i=0;;i+)
{


if(l[i]=='\n');
break;
if(l[i]==s[j])
sum++;
else
sum=0;
j++;
if(sum==ssum)
break;

}
printf("%d\n",sum);
printf("%d\n",ssum);
if(sum==ssum)
printf("包含");

}


第四次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,j=0,x=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;
printf("%c",s[i]);
ssum++;
}
printf("%d\n",ssum);
for(j=0;;j+)
{


if(l[j]=='\0')
break;
if(l[j]==s[x])
sum++;
else
sum=0;
x++;
printf("%",l[j]);
if(sum==ssum)
break;

}
printf("%d\n",sum);
printf("%d\n",ssum);
if(sum==ssum)
printf("包含");

}

第五次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,j=0,x=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;
printf("%c",s[i]);
ssum++;
}
printf("%d\n",ssum);
for(j=0;;j+)
{


if(l[j]=='\0'){
break;
}
if(sum==ssum){

break;

if(l[j]==s[x]){

sum++;
x++;
}
else{

sum=0;
x=0;
}

printf("%c",l[j]);
printf("%d",x);
 
//if(sum==ssum)
//break;

}
printf("%d\n",sum);
//printf("%d\n",ssum);
if(sum==ssum)
printf("包含");
else
printf("不包含");

}


第六次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,k=0,j=0,x=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;
//printf("%c",s[i]);
ssum++;
}
printf("%d\n",ssum);
for(j=0;;j+)
{
if(l[j]=='\0')
{
break;
}
if(sum==ssum)
{
break;

for(x=0;l[j]==s[k];x++)
{
sum++;
k++;
break;
if(sum==ssum)
{
break;
}

}
x=0;
j-=1;
continue;
}

printf("%c",l[j]);
printf("%d",x);
//if(sum==ssum)
//break;

printf("%d\n",sum);
//printf("%d\n",ssum);
if(sum==ssum)
printf("包含");
else
printf("不包含");

}

#include<stdio.h>
main()
{
char l[100],s[100];
int i,k=0,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;
printf("%c",s[i]);
ssum++;
}
printf("%d\n",ssum);
for(j=0;;j+)
{
if(l[j]=='\0')
{
break;
}
if(sum==ssum)
{
break;

if(l[j]==s[k])
{
sum++;
k++;
continue;
}
else
{
if(==0)
{
continue;
}

k=0;
j-=1;
continue
}
}

printf("%d",j);
//if(sum==ssum)
printf("%d",k);
//break;

printf("%d\n",sum);
printf("%d\n",ssum);
if(sum==ssum)
printf("包含");
else
printf("不包含");

}

第七次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,k=0,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;
printf("%c",s[i]);
ssum++;
}
printf("%d\n",ssum);
for(j=0;;j+)
{
if(l[j]=='\0')
{
break;
}
if(sum==ssum)
{
break;

if(l[j]==s[k])
{
sum++;
k++;
continue;
}
else
{
if(k==0 || j==0)
{
continue;
}

k=0;
j-=1;
continue;
}
}

printf("%d",j);
//if(sum==ssum)
printf("%d",k);
//break;

printf("%d\n",sum);
printf("%d\n",ssum);
if(sum==ssum)
printf("包含");
else
printf("不包含");

}

第八次

#include<stdio.h>
main()
{
char l[100],s[100];
int i,k=0,j=0,ssum=0,sum=0;
printf("请输入一个长的字符串");
gets(l);
fflush(stdin);
printf("请输入一个短的字符串");
fflush(stdin);
gets(s);

for(i=0;;i++)
{
if(s[i]=='\0')
break;
printf("%c",s[i]);
ssum++;
}
printf("%d\n",ssum);
for(j=0;;j+)
{
if(l[j]=='\0')
{
break;
}
if(sum==ssum)
{
break;

if(l[j]==s[k])
{
sum++;
k++;
continue;
}
else
{
if(k==0 || j==0)
{
continue;
}

k=0;
j-=1;
sum=0;
continue;
}
}

printf("%d",j);
//if(sum==ssum)
printf("%d",k);
//break;
printf("%d\n",sum);
printf("%d\n",ssum);
if(sum==ssum)
printf("包含");
else
printf("不包含");
}

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值