设计一程序实现功能,处理字符串A,处理规则是:只要B字里面有的字母,不分大小写,一律从A 字符串中删掉。
/*************************************************** file name:Pro_StuInfo.c* author :momolyl@126.com* date :2024/05/06* function :设计一程序实现功能,处理字符串A,处理规则是:只要B字里面有的字母,不分大小写,一律从A 字符串中删掉。* (1)请画出此算法的流程图(9分)* (2)请用C语言编写出对应的代码(20分)* note :None** CopyRight (c) 2024 momolyl@126.com All Right Reseverd***************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>/*************************************************** 函数名称:func* 函数功能:将字符串逆序输出* 函数参数:* @StrA:字符串A* @StrB:字符串B* 返回结果:删除B中字母后的字符串A的地址* 注意事项:None* 函数作者:momolyl@126.com* 创建日期:2024/05/06* 函数版本:V1.0**************************************************/char *DelSpecifiled_Str(char *StrA, const char *StrB)
{int i, j;for (i = 0; StrB[i]; i++) // 遍历字符串B{// 如果不是字母则跳过本次循环if ((StrB[i] < 'A' || StrB[i] > 'Z') && (StrB[i] < 'a' || StrB[i] > 'z')){continue;}for (j = 0; StrA[j]; j++) // 遍历字符串A{if ((StrA[j] < 'A' || StrA[j] > 'Z') && (StrA[j] < 'a' || StrA[j] > 'z')) // 如果不是字母则跳过本次循环{continue;}if (StrA[j] == StrB[i] || StrA[j] == StrB[i] + 32 || StrA[j] == StrB[i] - 32){for (int m = j; StrA[m]; m++){StrA[m] = StrA[m + 1];}j--;}elsecontinue;}}return StrA;
}int main(void)
{char A[] = "helloworlD";char B[] = "Ld";printf("%s\n", DelSpecifiled_Str(A, B));return 0;
}
运行结果