各位高手,看看帮我优化一下我写的程序。给点意见,看看哪里写的不好。
我的这个程序的目的是,在字符串中找到子串,并删掉它。这样实现怎么样,我觉得有点可读性比较差,能不能帮我改改。有什么更好的方法没有啊?
#include <stdio.h>
int del_substr(char *str,char const *substr)
{
char const *substr_temp=substr;
char *str_temp=str;
int substr_count=0;
while(*str_temp!='\0')
{
if(*substr_temp==*str_temp)
{
substr_temp++;
substr_count++;
}
else
{
substr_temp=substr;
substr_count=0;
}
str_temp++;
if(*substr_temp=='\0')
{
printf("找到了子串\n");
while(*str_temp!='\0')
{
*(str_temp - substr_count)=*str_temp;
str_temp++;
}
*(str_temp-substr_count)='\0';
return 1;
}
}
return 0;
}
#include <stdio.h>
main()
{
char str[20]="acbcdhcdefg";
char *substr="cde";
printf("原串:%s\n",str);
printf("子串:%s\n",substr);
del_substr(str,substr);
printf("删掉子串之后:%s\n",str);
}
谢谢了。