一次仅仅能删除一个字符,于是多次的调用就得到自己想要的字符串。
#include <stdio.h>
int str_size(char* const str) {
char* tmp = str;
int len = 0;
while(*tmp++)
len++;
return len;
}
char* del_ch(char* source, char c) {
if(str_size(source) <= 0)
return "The strings is too smaller!";
if(str_size(source) >= 0x1000)
return "The strings is too bigger!";
static char desc[0x1000];
char* tmp = desc;
while(*source) {
if(*source == c)
source++;
else
*tmp++ = *source++;
}
*tmp = '\0';
return desc;
}
int main(void) {
char* const str = "m y^@^@^ n#a me i~s Z#h~iQiang Li.";
printf("Source strings is:\n""%s\n", str);
printf("Desc strings is:\n""%s\n", del_ch(str, '\t'));
printf("Desc strings is:\n""%s\n", del_ch(del_ch(str,
'\t'), '~'));
printf("Desc strings is:\n""%s\n", del_ch(del_ch(del_ch(str,
'\t'), '~'), '@'));
printf("Desc strings is:\n""%s\n", del_ch(del_ch(del_ch(del_ch(str,
'\t'), '~'), '@'), '#'));
printf("Desc strings is:\n""%s\n", del_ch(del_ch(del_ch(del_ch(del_ch(str,
'\t'), '~'), '@'), '#'), '^'));
}