删除字符串A中与字符串B相同的字符
/**
* 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相同的字符的更多相关文章
- 字符串--java中判断字符串是否为数字的方法的几种方法?
ava中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < ...
- c# 数组 字符串 C#中判断字符串中包含某个字符
string str = "1,2,3,4,5,6,7"; string[] strArray = str.Split(','); //字符串转数组 ...
- C语言计算字符串数组中每个字符串出现的个数
unsigned int str_num(char *str[], int num[], int len) { int i, j; int count; int flag[len]; ; i < ...
- 7.Java中的字符串
1.String的特性 特性一:不可变性 String s=new String("yangyun") s=s.toUpperCase(); 这里的s,s占用的空间是不一样的(地址 ...
- Java OOP中的字符串篇
字符串的三大特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String.St ...
- BAT批处理中的字符串处理详解(字符串截取)
BAT批处理中的字符串处理详解(字符串截取) BAT批处理中的字符串处理详解(字符串截取 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理 ...
- 【转】BAT批处理中的字符串处理详解(字符串截取)
下面对这些功能一一进行讲解. 1.截取字符串 截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符.举例说明其基本功能: @echo off set ...
- shell 从变量中切割字符串
1. 在shell变量中切割字符串 shell中截取字符串的方法有很多中,${expression}一共有9种使用方法.${parameter:-word}${parameter:=word}${pa ...
- Python中的字符串与字符编码
本节内容: 前言 相关概念 Python中的默认编码 Python2与Python3中对字符串的支持 字符编码转换 一.前言 Python中的字符编码是个老生常谈的话题,同行们都写过很多这方面的文章. ...
- c/c++中与字符串处理相关的函数
void *memccpy (void *dest, const void *src, int c, size_t n); 从src所指向的对象复制n个字符到dest所指向的对象中.如果复制过程中遇到 ...
随机推荐
- Cesium 根据飞机航线计算飞机的Heading(偏航角)、Pitch(俯仰角)、Roll(翻滚角)
需求 设置飞机的一些坐标位置(经纬度高度),插值得到更多的坐标位置,然后飞机按照这些坐标集合形成的航线飞行,飞机的朝向.俯仰角以及飞机转弯时的翻转角根据坐标集合计算得出,而不需要手动设置heading ...
- 用户触达难?流失率高?HMS Core预测服务和智能运营,助你提前掌握营销时机,解决此难题。
用户流失了,触达难? 活动做了那么多,转化仍然很低? 运营也需要提前思考,预测用户动向,提前精准触达,才能事半功倍.结合HMS Core分析服务的预测服务和智能运营,洞察营销时机,实时落地营销策略,提 ...
- Qt操作sqlite数据库
代码讲解: 1.检查数据库文件是否存在,如果不存在就创建数据库文件 2.创建 person 表(等下的操作就是操作这个表) 3.查询出 person 表中所有的数据,并显示出来 Pro 文件 添加 S ...
- Djangorestframework 记录一个报错 -- rest_framework.authentication.ToKenAuthentication
今天在使用 Djangorestframework 这个框架时,发生报错: ImportError: Could not import 'rest_framework.authentication.T ...
- html-testRunner在unittest测试套件中的使用
废话不多说,直接上代码 代码 __author__ = 'huyang:十一的杂文录' import unittest import HtmlTestRunner import sys sys.pat ...
- 正则表达针对html(九)
前言 关于处理一些html的东西. 正文 假设有一段html文本: <?xml version="1.0" encoding="UTF-8"?> & ...
- 8k中英双语文本嵌入模型效果初探
一 模型介绍 向量模型用于生成向量表示,被广泛应用于检索.分类.聚类或语义匹配等传统的自然语言处理任务.到了大模型时代,由于上下文长度的限制,需要压缩.存储和查询大量的信息,这就需要用到向量模型对输入 ...
- 力扣81(java&python)-搜索旋转排序数组 II(中等)
题目: 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同. 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 ...
- 力扣119(java)-杨辉三角Ⅱ(简单)
题目: 给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行. 在「杨辉三角」中,每个数是它左上方和右上方的数的和. 示例 1: 输入: rowIndex = 3输出: [1 ...
- 阿里云2020上云采购季,你最pick哪个产品组合?
阿里云2020上云采购季如火如荼进行中,活动还剩最后10天啦,你的云产品都买好了吗? 还没买的,还没逛的,请戳:https://www.aliyun.com/sale-season/2020/proc ...