例如:str == "abcdefg",如果substr == "cde",那么删除子串后为abfg 返回1
如果substr 在str中不出现,返回0
函数原型
int
del_substr(
char
*str,
char
const
*substr);
要求:a.不能使用任何用于操纵字符串的库函数
b.不能使用任何下表引用
#include<stdio.h>
#include<assert.h>
int del_substr(char *str, char const *substr)
{
assert(str);
assert(substr);
int count = 0;
char *cp = str;
char *cp1 = NULL;
const char *subcp = substr;
while (*cp)
{
if (*cp == *subcp)
{
cp1 = cp;
cp++;
subcp++;
count++;
}
else
{
cp++;
subcp = substr;
}
if (*(subcp) == '\0')
{
while (*cp1)
{
*(cp1 - count) = *(++cp1);
}
return 1;
}
}
return 0;
}
int main()
{
int ret = 0;
char str[] = "abcdefg";
ret = del_substr(str, "cde");
printf("%d,%s", ret, str);
system("pause");
return 0;
}