永发信息网

c语言 定义一个函数,判断某字符串中是否包含一个子串

答案:3  悬赏:0  手机版
解决时间 2021-02-28 00:52
  • 提问者网友:别再叽里呱啦
  • 2021-02-27 07:06
c语言 定义一个函数,判断某字符串中是否包含一个子串
最佳答案
  • 五星知识达人网友:狂恋
  • 2021-02-27 07:44
其实就是C 库函数strstr
char *strstr(const char *s1, const char *s2)
{
    size_t l1, l2; 

    l2 = strlen(s2);
    if (!l2)
        return (char *)s1;
    l1 = strlen(s1);
    while (l1 >= l2) 
   {
        l1--;
        if (!memcmp(s1, s2, l2))
            return (char *)s1;
        s1++;
    }
    return NULL;
}
全部回答
  • 1楼网友:行路难
  • 2021-02-27 08:32
int find(char* source, char* target)//source为源字符串,target为子字符串,如找到则返回在源串中的位置,如未找到则返回-1,如果要改为找到返回1,把return i改为return 1; {     int i,j;     int s_len=strlen(source);     int t_len=strlen(target);     if(t_len>s_len)     {         return -1;     }     for(i=0;i<=s_len-t_len;i++)     {         j=0;         int flag=1;         if(source[i]==target[j])         {             int k,p=i;             for(k=0;k<t_len;k++)             {                 if(source[p]==target[j])                 {                     p++;                     j++;                     continue;                 }                 else                 {                     flag=0;                     break;                 }             }         }         else         {             continue;         }         if(flag==1)         {             return i;         }     }     return -1; }
  • 2楼网友:第幾種人
  • 2021-02-27 07:59
int find(char* source, char* target)//找到返回位置,未找到返回-1 { int i,j; int s_len=strlen(source); int t_len=strlen(target); if(t_len&gt;s_len) { return -1; } for(i=0;i&lt;=s_len-t_len;i++) { j=0; int flag=1; if(source[i]==target[j]) { int k,p=i; for(k=0;k&lt;t_len;k++) { if(source[p]==target[j]) { p++; j++; continue; } else { flag=0; break; } } } else { continue; } if(flag==1) { return i; } } return -1; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯