题目:在asdhelloasdhellodfafafhello中删除hello
下面将每个函数写成.c文件
1、找子串函数
int my_strncmp(char *s1,char *s2)
{
int i;
int len = strlen(s1);
for(i = 0; i <len; i++)
{
if(*(s1 + i) != *(s2 + i))
{
return -1;
}
}
return 0;
}
2、删除子串的函数
#inlcude <string.h>
void delete_ch(cahr *str,int len_sub)
{
int i;
int j;
int len = strlen(str);
for(j = 0; j < len_sub; j++)//删除len_sub长度的字符串的循环
{
for(i = 0; i <len; i++)//删除一个ch的循环
{
*(str + i) = *(str + i + 1);
}
len--;
*(str + i) = '\0';
}
}
3、删除要求重复子串的函数
#include <string.h>
void delete_sub_str(char *sub,char *str)
{
int len = strlen(sub);
while(*str != '\0')
{
if(my_strncmp(sub,str) == 0)
{
delete_ch(str,len);
}
else
{
str++;
}
}
}
4、主函数
#include <stdio.h>
int main()
{
char str[100];
cahr sub[100]'
printf("please input string:\n");
scanf("%s",str);
pirntf("please input a sub string:\n");
scanf("%s",sub);
delete_sub_str(sub,str);
printf("result is %s \n",str);
return 0;
}