首页 > 其他分享 >删除字符串中与另一个字符串中的相同字母的自定义函数

删除字符串中与另一个字符串中的相同字母的自定义函数

时间:2024-05-06 20:33:16浏览次数:23  
标签:自定义 temp 字母 char 字符串 strB strA

#include <stdio.h>
/*******************************************************************
 *
 *	函数名称:	str_DestDel
 *	函数功能:   删除一个字符串中与另一个字符串中的相同字母并且不区分大小写
 * 	函数参数:
 * 				@strA	需要操作的字符串
 * 				@strB	作为参考的字符串
 *	返回结果:
 *				@strA	返回删除后的字符串地址
 *	注意事项:   None
 *	函数作者:   [email protected]
 *	创建日期:   2024/05/06
 *	修改历史:
 *	函数版本:	V1.0
 * *****************************************************************/
char *str_DestDel(char *strA, char *strB)
{
	// 记录字符串A的首地址  一轮比较结束后需回到最开始的位置
	char *temp = strA;
	// 记录字符串中字符不相同的位置  从首地址开始  比较结束后返回开始地址
	char *p = strA;
	// 使用字符串B中每一个元素和字符串A比较
	while (*strB)
	{
		// 当字符串B中的元素不是字母时  跳出本轮循环
		if ((*strB < 'A' || *strB > 'Z') && (*strB < 'a' || *strB > 'z'))
		{
			strB++;
			continue;
		}
		// 遍历判断字符串A的字符与字符串B的字符是否相同  不区分大小写
		while (*temp != '\0')
		{
			// 当字符串B的字母与字符串A的当前字母不同时 将当前地址下的字母赋值给p指针下的地址 后两个指针进行偏移
			if ((*temp == *strB) || (*temp == *strB - 32) || (*temp == *strB + 32))
				;
			// 当相同时 仅将做比较用的指针偏移
			else
			{
				*p = *temp;
				p++;
			}
			temp++;
			if (*temp == '\0')
			{
				*p = '\0';
			}
		}
		temp = strA;
		p = strA;
		strB++;
	}
	return strA;
}

以下为测试代码及结果

int main()
{
	char str1[] = "ABCDEFGHGFEDCBA";
	char str2[] = "cE";
	str_DestDel(str1, str2);
	printf("%s\n", str1);
	return 0;
}

image

标签:自定义,temp,字母,char,字符串,strB,strA
From: https://www.cnblogs.com/lzlwyh/p/18175837

相关文章

  • 0506C语言练习:字符串A中删除字符串B中所有相同字母等
    字符串A中删除字符串B中所有相同字母(无论大小写)/***@func: 字符串A中删除字符串B中所有相同字母(无论大小写)*@date2024/05/06*@version1.0:版本*CopyRight(c)[email protected]*/voidrepeat(char*a,constchar*b){......
  • 删除A字符串中B字符串有的字符
    char*DelStrAofStrB(char*strA,char*strB){//判断字符串B是否到尾部while(*strB!='\0'){//判断字符串B的当前字符是否属于字母(不论大小写)if((*strB<'A'||*strB>'Z')&&(*strB<'a'||*str......
  • 在A数组中删除B数组中出现的所有字母
    数据结构笔试题:设计一程序实现功能,处理字符串A,处理规则是:只要B字符串里面有的字母,不分大小写,一律从A字符串中删掉。#include<stdio.h>#include<string.h>char*string(char*strA,constchar*strB){inth=0;intsizeA=strlen(strA);intsizeB=strlen(st......
  • YOLOV8训练自定义数据集
    一、仓库地址YOLOV8二、数据预处理2.1将标注数据按照类别划分到不同的文件目录#单独筛选某一类缺陷importnumpyasnpimportos#shutil:操作多文件或者文件集合(复制、移除等)importshutil#------------------------------------------------------------------##作......
  • LaTeX 常见希腊字母
    字母名称大写命令小写命令alphaAAα\alphabetaBBβ\betagammaΓ\Gammaγ\gammadeltaΔ\Deltaδ\deltaepsilonEEϵ\epsilonε\varepsilonetaEEη\etathetaΘ\Thetaθ\thetalambdaΛ\Lambdaλ\lambdaMu......
  • vue + Ant Design Vue 表格自定义勾选状态
     //勾选规则//1.勾选当前不勾联动选子级//2.勾选当前需要联动勾选父级//3.勾选当前取消需要联动取消子级和联动取消父级,如果存在平级则不取消父级<template><a-spin:spinning="state.spining"><div><a-modalref="mModal"id="mModal"class="partial......
  • 用php找出字符串中连续重复次数最多的字符,你有方法吗?
     找出字符串中连续重复次数最多的字符,这里总结了几种方法,不管是在开发中,还是在面试中都会遇到。方法一<?php$arr=str_split($str);//字符串分隔到数组中$arr=array_count_values($arr);//用于统计数组中所有值出现的次数,返回一个数组//键名为原数组的键值,键值为......
  • VMware ESXi 8.0U2b macOS Unlocker HP (惠普) HPE (慧与) OEM 定制版自定义镜像
    VMwareESXi8.0U2bmacOSUnlockerHP(惠普)HPE(慧与)OEM定制版自定义镜像ESXi8.0U2标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)、Cisco(思科)、Hitachi(日立)、Fujitsu(富士通)、NEC(日电)OEM定制版请访问原文链接:VMwareESXi8.0U2bmacOSUn......
  • VMware ESXi 8.0U2b macOS Unlocker Dell (戴尔) OEM 定制版自定义镜像 A06
    VMwareESXi8.0U2bmacOSUnlockerDell(戴尔)OEM定制版自定义镜像A06ESXi8.0U2标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)、Cisco(思科)、Hitachi(日立)、Fujitsu(富士通)、NEC(日电)OEM定制版请访问原文链接:VMwareESXi8.0U2bmacOSUnlocke......
  • VMware ESXi 7.0U3p macOS Unlocker HP (惠普) HPE (慧与) OEM 定制版自定义镜像
    VMwareESXi7.0U3pmacOSUnlockerHP(惠普)HPE(慧与)OEM定制版自定义镜像ESXi7.0U3标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)、Cisco(思科)、Hitachi(日立)、Fujitsu(富士通)、NEC(日电)OEM定制版请访问原文链接:VMwareESXi7.0U3pmacOSUn......