/**
*编写函数,删除一个字符串的一部分
*函数原型:int del_substr(char *str, char const *substr);
*/
#include <stdio.h>
#define ARRAY_SIZE 101
int del_substr(char *str, char *substr);
int main (void)
{
char str[ARRAY_SIZE];
char substr[ARRAY_SIZE];
int key;
for(;;){
printf("输入一个字符串:\n");
gets(str);
printf("输入要删除的字符串:\n");
gets(substr);
key=del_substr(str,substr);
if(key==1)
printf("ok\n");
else
printf("no\n");
printf("result:%s\n",str);
}
printf("程序到达文件结尾\n");
return 0;
}
int del_substr(char *str, char *substr){
char *s=str;
char *p=substr;
char *q;
int i=0;
while(*s!='\0'){
/**
*在str字符串中查找substr字符串
*/
if(*s==*p){
s++;
p++;
i++;
}
/**
*指针回溯
*/
else{
s=s-i+1;
p=substr;
i=0;
}
/**
*找到了,就进行删除操作
*/
if(*p=='\0'){
q=s-i;
while(*s!='\0'){
*q++=*s++;
}
*q='\0';
return 1;
}
}
return 0;
}
转载于:https://my.oschina.net/u/2356112/blog/493740