判断字符串s1中是否存在子字符串s2,不用字符串处理函数。
为何运行总是“存在”呢?而且输入字符串的时候在哪边加'\0'呢??新手入门,求指教代码如下:#include<stdio.h>intmain(){chars1[100],...
为何运行总是“存在”呢?而且输入字符串的时候在哪边加'\0'呢??新手入门,求指教
代码如下:
#include<stdio.h>
int main()
{
char s1[100],s2[100];
int i,j,flag;
printf("请输入字符串s1:");
do
{
i=0;
s1[i]=getchar();
i++;
}while(s1[i-1]!='\n');
printf("请输入字符串s2:");
do
{
i=0;
s2[i]=getchar();
i++;
}while(s2[i-1]!='\n');
flag=1;
for(i=0,j=0;s1[i]!='\n';i++)
{
if(s2[j]!=s1[i])
{
flag=0;
}
if(s2[j]==s1[i])
{
flag=1;
do
{
j++; i++;
if(s2[j]!=s1[i])
{
flag=0;
break;
}
}while(s2[j]!='\n');
}
}
if(flag==1)printf("字符串s1中存在子字符串s2\n");
if(flag==0)printf("字符串s1中不在子字符串s2\n");
return 0;
} 展开
代码如下:
#include<stdio.h>
int main()
{
char s1[100],s2[100];
int i,j,flag;
printf("请输入字符串s1:");
do
{
i=0;
s1[i]=getchar();
i++;
}while(s1[i-1]!='\n');
printf("请输入字符串s2:");
do
{
i=0;
s2[i]=getchar();
i++;
}while(s2[i-1]!='\n');
flag=1;
for(i=0,j=0;s1[i]!='\n';i++)
{
if(s2[j]!=s1[i])
{
flag=0;
}
if(s2[j]==s1[i])
{
flag=1;
do
{
j++; i++;
if(s2[j]!=s1[i])
{
flag=0;
break;
}
}while(s2[j]!='\n');
}
}
if(flag==1)printf("字符串s1中存在子字符串s2\n");
if(flag==0)printf("字符串s1中不在子字符串s2\n");
return 0;
} 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询