删除A中与B相同的元素

程序

#include <stdio.h>
/*******************************************************************
 *
 *	file name:	删除A中与B相同的元素
 *	author	 :  17647576169@163.com
 *	date	 :	2024-5-6
 *	function :	对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除
 * 	note	 :  None
 *
 *	CopyRight (c)  2024   17647576169@163.com   All Right Reseverd
 *
 * *****************************************************************/

char *string(char *strA, char *strB)
{
	char *A = strA;
	char *B = strB;
	char *p = strA;
	// 判断字符串B是否到达末尾

	while (*B)
	{

		// 判断字符串B的当前字符是否属于字母(大写字母 or 小写字母)
		if ((*B < 'A' || *B > 'Z') && (*B < 'a' || *B > 'z'))
		{

			// 如果字符串B的字符不是字母,则向后偏移
			B++;
			continue;
		}
		// 让字符串B中的每个字符都和字符串A中的所有字符进行比较
		while (*A != '\0')
		{
			// 比较字符的ASCII码,注意:不分大小写
			if ((*A == *B) || (*A == *B + 32) || (*A == *B - 32))
				;
			else
			{
				*p = *A;
				p++;
			}
			A++;
			if (*A == '\0')
			{
				*p = '\0';
			}
		}
		// 初始化P和A的位置
		A = strA;
		p = strA;
		B++;
	}
	return strA;
}

验证

int main(int argc,
		 char const *argv[])
{
	char A[] = "hHHeooHolloooo23ooo,world456";
	char B[] = "l111H";
	string(A, B);
	printf("%s\n", A);
	return 0;
}

输出结果

eooooooo23ooo,word456