描述:编写一道程序完成将任意字符串中指定子串屏蔽。
例如:
从"acbdhelloaaacchina",中屏蔽"aac",将其显示为:"acbdhelloa***china"。
#include < stdio.h>
#define N 64
char *mystrstr(char *src, char *needle);
int main()
{
char buff[N];
char *needle = "aac";
gets(buff); //此处为临时测试用,实际中不允许使用危险的gets函数。
mystrstr(buff,needle); //调用子函数处理字符串
puts(buff); //打印处理后的结果
return 0;
}
char *mystrstr(char *src, char *needle)
{
char *old = src;
int len = 0;
int i = 0;
if(NULL == src || NULL == needle) //安全校验,如果指针非法则退出
return NULL;
while('\0' != *src) //进入主循环,条件为字符串的结束标识
{
len = 0;
while(*src != *needle && *src != '\0') //第一步,先找到要屏蔽的字符串头
src ++;
while(src[len] == needle[len] && needle[len] != '\0') //第二步,找到字符串尾
len ++;
if(needle[len] == '\0') //依据条件判断,如果找到了,则开始屏蔽
{
for(i = 0; i < len; i ++)
src[i] = '*';
&nbsnbsp; src += len;
}
else
src ++; //否则从下一个字符开始重新查找。
}
return old;
}