C语言中判断一个字符串是否为另一字符串的子串

能帮我改一下我的程序吗?... 能帮我改一下我的程序吗? 展开
 我来答
WMYUOM
2019-05-19 · TA获得超过350个赞
知道小有建树答主
回答量:435
采纳率:78%
帮助的人:203万
展开全部

你的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");
 }
}

zjf121348
2019-05-19 · TA获得超过520个赞
知道小有建树答主
回答量:1126
采纳率:59%
帮助的人:208万
展开全部
发了出现错误的图,表扬,然而看不清
更多追问追答
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
never715
2019-05-19 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:451万
展开全部
#include <stdio.h>

int len(const char* str)
{
    int len = 0;
    while (*str++ != 0) ++len;
    return len;
}

int substr(const char* src, const char* target)
{
    int i = 0;
    int j = 0;
    int pos = -1;
    int src_len;
    int target_len;

    if (!src || !target) return pos;

    src_len = len(src);
    target_len = len(target);
    if (target_len > src_len) return pos;

    while (i < src_len && j < target_len)
    {
        if (target[j] == src[i])
        {
            i++;
            j++;
        }
        else
        {
            i = i - j + 1;
            j = 0;
        }
    }
    if (j == target_len)
    {
        pos = i - target_len;
    }

    return pos;
}

void main(void)
{
    char a[100], b[100];
    gets(a);
    gets(b);
    printf(substr(a, b) < 0 ? "NO" : "YES");
}
更多追问追答
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bc56f1b
2019-05-19
知道答主
回答量:14
采纳率:0%
帮助的人:8320
展开全部
看不清楚啊,发原图
更多追问追答
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潭顺2E
情感倾听者

2019-05-19 · 让我来听你的故事
知道小有建树答主
回答量:1334
采纳率:31%
帮助的人:60.2万
展开全部
看不清楚,怎么帮你改呢
更多追问追答
追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式