用c语言编写程序,提示用户输入两个字符串,并检验第一个字符串是否为第二个字符串的子串。

我已经纠结好多天了,求大侠赐教
2024-11-24 03:00:34
推荐回答(2个)
回答1:

在C++和JAVA中这个是有专门函数来做的。C里面没有。

好,我给你写一个!
#include
int isstr(const char *source,const char *dest)
{
int i=0,j,k;
while(source[i]!='\0')
{
k=i;j=0;
while(source[k]!='\0'&&dest[j]!='\0'&&source[k]==dest[j])
k++,j++;
if (dest[j]=='\0')
return 1;
if (source[k]=='\0')
return 0;
i++;
}
return 0;
}

int main()
{
char str_1[20];
char str_2[20];
printf("请输入第一个字符串:");
scanf("%s",str_1);
printf("请输入第二个字符串:");
scanf("%s",str_2);
if(isstr(str_2,str_1)==1)
{
printf("第一个字符串是第二个字符串的字串!\n");
}
else
{
printf("第一个字符串不是第二个字符串的字串!\n");
}
return 0;
}

回答2:

C有库函数处理的 来自 的 char* strstr(const char* haystack, const char* needle);
将你的第一个输入字符串作为函数输入参数2,第二个输入作为函数输入参数1,就可以了,返回找到的首地址,否则返回0