C语言. 编写函数,判断在给定字符串中是否包含指定的子串

如题所述

#include<stdio.h>
#include<string.h>
int main(){
    char str[100],s[100],i,j,flag=0;
    printf("请输入主串:\n");
    gets(str);
    printf("请输入字串:\n");
    gets(s);
    i=0,j=0;
    while(i<strlen(str) && j<strlen(s)){
        if(str[i] == s[j]){//如果字符相同则两个字符都增加
            i++;
            j++;
        }
        else{
            i=i-j+1; //主串字符回到比较最开始比较的后一个字符
            j=0; //字串字符重新开始
        }
        if(j == strlen(s)){//如果匹配成功
            flag=1; //字串出现
            break;
        }
    }
    if(flag==1) printf("%s中包含%s\n",str,s);
    else printf("%s中不包含%s\n",str,s);
    return 0;
 }

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-13

#include "windows.h"

#include "stdio.h"


bool FindString(char* pStr, char* pSub)

{

bool bRet = false;

int nStrLen = strlen(pStr);

int nSubLen = strlen(pSub);

for(int i = 0; i < nStrLen; i++)

{

int j = 0;

for(j = 0; j < nSubLen; j++)

{

if(pStr[i + j] != pSub[j])

{

break;

}

}

if(j >= nSubLen)

{

bRet = true;

break;

}

}

return bRet;

}


void main()

{

char *pStr = "Those were such happy times";

char *pSub = "happy";

printf("字符串:%s\n", pStr);

printf("子符串:%s\n", pSub);

printf("%s", FindString(pStr, pSub) ? "存在\n":"不存在\n");

system("pause");

return ;

}


本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网