C removing multiple letter from string
从一个字符串中删除所有另一个字符串中包含的字符
比如 string1="abcdefghi", string2="afbdh", 将string1中所有在string2中包含的字符都删除,得到的output="cegi".
先讨论从字符串中删除一个字符
char* strdel(char* s, char c) {
char* p;
for (p=s; *s;)
if (*s == c)
strcpy(s, s+1);
else
s++;
return p;
}
现在要删除一个字符串中包含的字符
思路:要判断这个字符是否在要删除的字符串中,使用 strchr 函数
char * strchr (char * str, int character);
使用这个函数进行上面的操作,就能实现了
char* rmstr(char* str1, char* str2) {
char* r = str1;
char* w = (char*)malloc(sizeof(char)*20);
char* p;
p = w;
while (*r != '\0') {
if (strchr(str2, *r) == NULL) { // char is not in the string to delete
*w = *r;
w++;
}
r++;
}
*w = '\0';
return p;
}