找出俩个字符串的相同并删除

news/2024/10/7 8:27:37

找出俩个字符串相同并删除

今天遇到一个题目,就是有俩个字符串,A和B,找出A中和B相同的字母,并删除,只对字母进行操作,具体题目如下:
image

子函数实现

对于比较A和B字符串并删除A与B相同的字母,返回A的地址

  • /*******************************************************************
    *
    *	name	 :	StringDel
    *	function :  找出A和B相同的字母并删除,返回A
    *	argument :  @data  指定结点的数据域的数据
    *	retval	 :  None
    *	author	 :  yq_dyx@163.com
    *	date	 :  2024/05/06
    * 	note	 :  None
    * 	
    * *****************************************************************/
    #include <stdio.h>
    #include <stdlib.h>char *StringDel(char *A,char *B)
    {char *p = A;                  //p备份A的首地址用于遍历比较char *str = A;                //str备份A的首地址用于存放结果char *pp = B;                 //pp备份B的首地址用于遍历比较while(*p != '\0')             //用于遍历A{pp = B;                   //当p偏移一次pp回到B的首地址,重新从开始比较if((*p < 'A' || *p > 'Z') && (*p < 'a' || *p > 'z'))                //当p不是字母时,重新从开始比较{p++;continue;}while(*pp)                  //用于遍历B{if(*p != *pp && *p != *pp+32 && *p != *pp-32)           //当p和pp的大小写都不相等时,重新从开始比较{pp++;continue;}else                                                     //当p和pp相等时,直接退出{pp++;break;}      }if(*pp == '\0' && *str != '\0' && *(pp-1) != *p && *p != *(pp-1)+32 && *p != *(pp-1)-32)           //当pp遍历完时,p和pp不相等时,p存入结果,且与B最后的字母也不相等{*str = *p;str++;           }p++;}*str = '\0';            //给A的结尾加上终止符return A;
    }

主函数测试

int main()
{char A[] = "kDfjlFkwel";char B[]= "lsdkjf";StringDel(A,B);printf("%s\n",A);return 0;
}

已经经过测试验证并成功,测试结果如代码的测试结果一致,如图:

image

image

希望看完代码的你发现错误,请评论批评指正,非常感谢。并希望以上的代码能对同是初学者的你有所帮助,大家一起加油吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/28330.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

如何根据二叉树遍历结果快速绘制二叉树

一、已知前序遍历和中序遍历 (1)前序遍历(根结点--->左子树--->右子树) A B D G H C E I F (2)中序遍历(左子树--->根结点--->右子树) G D H B A E I C F注意:在最后连接二叉树时,注意先完玩左子树,再连右子树 二、已知前后序遍历和中序遍…

顺序栈的实现

顺序栈的模板/******************************************************************************************************** * * file name: Zqh_栈实现.c * author : keyword2024@163.com * date : 2024/05/05 * function : 该程序实现顺序栈元素的增删改查 * note :…

双向循环链表的实现

双向循环链表的模板/******************************************************************************************************** * * file name: Zqh_链表.c * author : keyword2024@163.com * date : 2024/05/05 * function : 链表的增删改查 * note : 模板 * * Co…

工作感受月记(202405月)

2024年05月06号 新的一月工作天,旧事未清理,新事不停生。 今日工作事项: 1/ 来了一个新案例,apim stv1 升级到stv2的情况,客户需要noam同学来帮助建会议处理问题。 2/ 自己研究durable function的4001端口问题,证明确实是gRPC需要使用,用于 isolated process处理时候,进…

冲刺第三天

今天继续优化登录界面,寻找到了app的图标和想出了名字,

线程池核心原理浅析

由于系统资源是有限的,为了降低资源消耗,提高系统的性能和稳定性,引入了线程池对线程进行统一的管理和监控,本文将详细讲解线程池的使用、原理。前言 由于系统资源是有限的,为了降低资源消耗,提高系统的性能和稳定性,引入了线程池对线程进行统一的管理和监控,本文将详细…

ctf_web

ctfshow web13 访问题目链接一看是一道文件上传题,上传文件进行测试 上传php会显示 error suffix 因此推测会检测格式 当文件字数超出一定字数时,显示 error file zise 常规操作就是访问 .php.bak 、.phps 、.swp等文件,看看有没有源码泄露 这道题访问 upload.php.bak 成功获…

顺序表的实现

顺序表的实现/******************************************************************************************************** * * file name: Zqh_顺序表.c * author : keyword2024@163.com * date : 2024/05/05 * function : 顺序表的增删改查 * note : 模板 * * Copy…