同样是练习指针的
题目要求 给出两个字符串A和B 如果A中出现了字符串B 那么删除,并且返回1,如果没有出现则返回0
附加要求是 不使用 下标和操作字符串的库函数
#include<stdio.h>
#include<string.h>
int del_substr(char *str,char const *substr)
{
int len = strlen(str);
int sublen = strlen(substr);
char *string = str;
int i;
int j;
int tmp=0;
int flag = 0;
for(i = 0;i<len;i++)
{
tmp = 0;
if(*str == *substr) //如果有发现相同的字符则进行字符串比对
{
for(j = 0;j<sublen;j++)
{
if(*str == *substr)
{
str++;
substr++;
tmp++;
}
else
{
substr-=tmp;
str -=tmp;
break;
}
}
}
if(tmp == sublen)
{
str -= tmp;
char *p = str;
p += tmp;
while(*str != NULL)
{
*str++ = *p++;
flag++;
}
break;
}
else
{
str++;
}
}
if(i==len)
{
return 0;
}
if(j==sublen)
{
str = string;
return 1;
}
}
int main()
{
char str[] = "lifeishardmakemesick";
char substr[] = "make";
int p;
p = del_substr(str,substr);
printf("%d\n",p);
printf("%s\n",str);
return 0;
}