remove函数的实现

唉,一个低级失误啊,少了一个等号,逻辑判断变成了一个赋值唉

//实现函数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;
}

第一次写的时候,把

猜你喜欢

转载自blog.csdn.net/weixin_43155199/article/details/125931339