H面试程序(11): 判断字符串是否包含子串问题

题目描述: 

                      如字符串str1为''abcdef'''

                      字符串str2为'' bc'';

则字符串str1中含有字串str2;

#include <stdio.h>
#include<malloc.h>
#include<memory.h>
#include<assert.h> int Whether_Is_Substring(char* str1, char * str2) //这个函数只是找到了str1中第一个和字串相同字串
{ //还可以设立一个计数器统计str1中一共包含有几个相同字串
assert(str1);
assert(str2);
int i = 0; int j = 0; while(str1[i] != '\0')
{
while(str1[i] ==str2[j]) //因为是字串问题,必须连续地比
{
i++;
j++;
}
if(str2[j] =='\0') //当字串到达'\0'时,就说明字符串str1中含有字符串str2
return 1;
else //如果没有到达'\0',str2就要重新从第1个字符比起,
j = 0;
i++;
}
return 0; }
int main()
{
char str1[] ="afdasfg";
char str2[] ="fd"; int a = Whether_Is_Substring(str1, str2); //1代表str1包含str2;
if(0 == a)
printf("字符串str1中不包含字符串str2\n");
else
printf("字符串str1中包含字符串str2\n"); return 0; }
上一篇:H面试程序(10): 字符串包含问题


下一篇:(二)Harbor WEB的使用