唉,一个低级失误啊,少了一个等号,逻辑判断变成了一个赋值唉
//实现函数void remove(char* str1, char* str2)。
//功能:将str2里出现的字符从str1里移除。(例如str1为”abcdef”, str2为”bde”,则移除后str1变为”acf”。
void remove(char* str1, char* str2)
{
if((!str1) || (!str2)) return ;
char *tmp = (char *)malloc(strlen(str1)+1);
if(!tmp) return ;
int i, j;
int m = 0;
for(i=0; i< strlen(str1); i++)
{
int k = 0;
for(j = 0; j < strlen(str2); j++)
{
if(str1[i] == str2[j]) k++;
}
if(k == 0)
{
tmp[m++] = str1[i];
}
}
memcpy(str1, tmp, m);
str1[m] = '\0';
free(tmp);
tmp = NULL;
return;
}
第一次写的时候,把