/**
* file name:DelDestChar.c
* author : liaojx2016@126.com
* date : 2024-05-06
* function : Delete string A alike to string B's charactor
* note : None
* CopyRight (c) 2024 liaojx2016@126.com Right Reseverd
*
**/
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
/**
*
* func name : func
* function : Delete string A alike to string B's charactor
* parameter :
* @strA :Address pointed to string A
* @strA :Address pointed to string B
* Return val : Address pointed to modified string A
* note : None
* author : liaojx2016@126.com
* date : 2024-05-06
* version : V1.0
* modify history : None
*
**/
char* func(const char*strA , const char *strB)
{
char *str = ( char* )malloc( strlen(strA) );//用于存放strA删除后的字符串
if(str == NULL)
{
perror("malloc failed\n");
exit(-1);
}
str=strcpy( str,strA );
//printf("str =%s\n",str);
int i=0;//str的下标
char *p;//备份每次循环改变后的str字符串 //判断字符串B是否到达末尾
while (*strB)
{
//printf("*strB=%c\n",*strB);
//判断字符串B的当前字符是否属于字母(大写字母 or 小写字母)
if ( (*strB < 'A' || *strB > 'Z') && (*strB < 'a' || *strB > 'z') )
{
//如果字符串B的字符不是字母,则向后偏移
strB++;
continue;
}
i=0;
p=str;
//判断字符串p是否到达末尾
while(*p)
{
//判断当前字符属于字母范围且大小写与字符串B当前的字符大小写相等
if ( ( (*p > 'A' && *p < 'Z') || (*p > 'a' || *p < 'z') ) && (*p==*strB ||*p==*strB+32 ||*p==*strB-32 ))
{
//若成立,则不赋值,直接地址偏移
p++;
}
else
{
//若不成立,直接赋值
str[i++]=*p++;
}
//printf("i=%d\n",i);
//printf("str=%s\n",str);
}
//此时字符串A中与字符串B的当前字符大小写相同的字符已删除
str[i]='\0'; //将str的字符串加上结束标志、0
//printf("***str=%s\n",str);
strB ++;
}
return str;
} int main(int argc, char const *argv[])
{
char*strA="Hello world";
char*strB="Loh";
printf("strA =%s\n",strA);
printf("strB =%s\n",strB);
char *str=func(strA,strB); printf("str=%s\n",str); return 0;
}

测试输出结果:

删除字符串A中与字符串B相同的字符的更多相关文章

  1. 字符串--java中判断字符串是否为数字的方法的几种方法?

    ava中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...

  2. c# 数组 字符串 C#中判断字符串中包含某个字符

    string str = "1,2,3,4,5,6,7";            string[] strArray = str.Split(','); //字符串转数组      ...

  3. C语言计算字符串数组中每个字符串出现的个数

    unsigned int str_num(char *str[], int num[], int len) { int i, j; int count; int flag[len]; ; i < ...

  4. 7.Java中的字符串

    1.String的特性 特性一:不可变性 String s=new String("yangyun") s=s.toUpperCase(); 这里的s,s占用的空间是不一样的(地址 ...

  5. Java OOP中的字符串篇

    字符串的三大特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String.St ...

  6. BAT批处理中的字符串处理详解(字符串截取)

    BAT批处理中的字符串处理详解(字符串截取)   BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理 ...

  7. 【转】BAT批处理中的字符串处理详解(字符串截取)

    下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @echo off set ...

  8. shell 从变量中切割字符串

    1. 在shell变量中切割字符串 shell中截取字符串的方法有很多中,${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${pa ...

  9. Python中的字符串与字符编码

    本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...

  10. c/c++中与字符串处理相关的函数

    void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中.如果复制过程中遇到 ...

随机推荐

  1. netty系列之:在netty中实现线程和CPU绑定

    目录 简介 引入affinity AffinityThreadFactory 在netty中使用AffinityThreadFactory 总结 简介 之前我们介绍了一个非常优秀的细粒度控制JAVA线 ...

  2. RabbitMQ 02 安装

    安装 推荐使用Docker进行安装. 执行如下命令. docker run -d --restart always --name rabbitmq \ -e RABBITMQ_DEFAULT_USER ...

  3. 探索生成式AI的未来:Chat与Agent的较量与融合

    近年来,生成式人工智能(AI)不仅在技术界引起了广泛关注,更成为了推动多个行业革新的关键力量.这种技术之所以备受瞩目,不仅在于其独特的创造性和高效性,还在于它对未来商业模式和社会结构可能产生的深远影响 ...

  4. springBoot集成RPC

    需求 : 项目开发到尾期,仓库系统需要对接我们这边的制造系统, 为的是制造系统所使用物料时,需向仓库系统发送请求物料信息,所以需要调用 仓库接口. 使用技术: RPC 数据传输格式: json 开发环 ...

  5. K8S 性能优化 - K8S APIServer 调优

    前言 K8S 性能优化系列文章,本文为第二篇:Kubernetes API Server 性能优化参数最佳实践. 系列文章: <K8S 性能优化 - OS sysctl 调优> 参数一览 ...

  6. nginx重新整理——————http请求的11个阶段中的find_config[十三]

    前言 简单介绍一下find_config 与 preaccess 阶段. 正文 find_config 很大一部分工作是进行location的匹配. 来一张图看下location指令和merge_sl ...

  7. Reinforcement Learning (DQN) 中经验池详细解释

    一般DQN中的经验池类,都类似于下面这段代码. import random from collections import namedtuple, deque Transition = namedtu ...

  8. i-MES生产制造管理系统-老化时间管控

    在生产过程中,产品的可靠性是影响其性能和寿命的关键因素,因此提高产品的可靠性是十分必要的,而老化测试是提高产品可靠性的重要手段之一,老化的时间随着产品不同而变化,因此老化时间管控变得尤为重要! 在ME ...

  9. CSS 中 MASK 实现图片遮罩登炫酷效果

    顾名思义,mask 译为遮罩.在 CSS 中,mask 属性允许使用者通过遮罩或者裁切特定区域的图片的方式来隐藏一个元素的部分或者全部可见区域. 其实 mask 的出现已经有一段时间了,只是没有特别多 ...

  10. python性能测试,请求QPS测试

    QPS = (1000ms/平均响应时间ms)*服务并行数量 #!/user/bin/env python #coding=utf-8 import requests import datetime ...