![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
C语言判断一个字符串是否是另一个字符串的子串
展开全部
1、首先,定义两个整型变量,保存判断的数和同构串计数。
2、定义3字符串变量,保存用来判断的同构字符串和用来判断包含多少同构字符串的字符串,以及字符串的子串。
3、定义两个整型变量,保存同构字符串中所有字母的数量。
4、重置数组n的值,初值为0。
5、判断字符串的子串,是否为同构子串。
6、如果子串是同构子串,则统计值自加1。
7、运行程序,输入两个字符串后,电脑就会统计出所有同构子串的数量。
展开全部
你的if语句后面再加个if语句判断f是否等于1,等于1就不用循环了。你没判断,后面的字符又把你的1改回0了。修改后代码如下
#include <stdio.h>
#include <string.h>
main() {
char a[100],b[100];
int i,j,f=0;
gets(a);//cde
gets(b);//aabbcdefghbcd
for(i=0;i<strlen(b);i++){
if(b[i]==a[0]){
for(j=1;j<strlen(a);j++){
if(a[j]==b[i+j]){
f=1;
continue;
}else{
f=0;
break;
}
}
}
if(f==1){
break;
}
}
if(f==1)
printf("YES");
else
printf("NO");
}
使用库函数strstr
#include <stdio.h>
#include <string.h>
main() {
char a[100],b[100];
gets(a);
gets(b);
if(strstr(b,a)!=NULL){//第2个参数第1个参数的子串
printf("YES");
}else{
printf("NO");
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
string.h
strstr函数
函数名: strstr
功 能: 在串中查找指定字符串的第一次出现
用 法: char *strstr(char *str1, char *str2);
说明:返回指向第一次出现str2位置的指针,如果没找到则返回NULL。
调用函数,判断返回值是否等于NULL,决定是否输出:
#include <string.h>
#include <stdio.h>
int main()
{
char s[]="12345678";
char s1[]="135";
char s2[]="567";
if ( strstr(s,s1) )
{
printf("ok\n");
}
else
{
printf("no\n");
}
//--以上显示no
if ( strstr(s,s2) )
{
printf("ok\n");
}
else
{
printf("no\n");
}
//--以上显示ok
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询