首页 > 其他分享 >对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除

对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除

时间:2024-05-06 20:45:43浏览次数:34  
标签:字符 字母 char 大小写 字符串 strA

/**

  • @file name: main.c
  • @brief 实现对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除
  • @author [email protected]
  • @date 2024/06/26
  • @version 1.0 :版本
  • @property :属性介绍
  • @note 补充 注意 说明
  • CopyRight (c) 2023-2024 [email protected] All Right Reseverd
    */
    实现对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除
    1:判断字符串B中的待处理字符,去除大小写字母以外的字符
    2:通过第一次循环实现对字符串A的遍历。第二次嵌套循环找到字符串A中是否有与字符串B相同或同为大小写字符的元素。找到元素后将该位置后的元素覆盖到该位置上进行删除。
#include <stdio.h>
/**
 * @function name:	string
 * @brief  实现对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除
 * @param  @straA: @strB:
 * @retval 函数返回类型说明
 * @date 2024/05/6
 * @version 1.0 :版本
 * @note   补充 注意 说明
 */
char *string(char *strA, char *strB)
{
    char *A = strA;
    char *B = strB;
    char *p = strA;
    // 判断字符串B是否到达末尾

    while (*B)
    {

        // 判断字符串B的当前字符是否属于字母(大写字母 or 小写字母)
        if ((*B < 'A' || *B > 'Z') && (*B < 'a' || *B > 'z'))
        {

            // 如果字符串B的字符不是字母,则向后偏移
            B++;
            continue;
        }
        // 让字符串B中的每个字符都和字符串A中的所有字符进行比较
        while (*A != '\0')
        {
            // 比较字符的ASCII码,注意:不分大小写
            if ((*A == *B) || (*A == *B + 32) || (*A == *B - 32))
            {
                p = A;
                while (*p != '\0')
                {
                    *p = *(p + 1);
                    p++;
                }
                A--;
            }
            *A++;
        }
        A = strA;
        *B++;
    }
    return strA;
}
int main(int argc,
         char const *argv[])
{
    char A[] = "heollo2 world456";
    char B[] = "hl";

    string(A, B);
    printf("%s\n", A);
    return 0;
}

函数验证结果:
image

标签:字符,字母,char,大小写,字符串,strA
From: https://www.cnblogs.com/zeratul/p/18175831

相关文章

  • 删除字符串中与另一个字符串中的相同字母的自定义函数
    #include<stdio.h>/********************************************************************* 函数名称: str_DestDel* 函数功能:删除一个字符串中与另一个字符串中的相同字母并且不区分大小写* 函数参数:* @strA 需要操作的字符串* @strB 作为参考的字......
  • 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......
  • LaTeX 常见希腊字母
    字母名称大写命令小写命令alphaAAα\alphabetaBBβ\betagammaΓ\Gammaγ\gammadeltaΔ\Deltaδ\deltaepsilonEEϵ\epsilonε\varepsilonetaEEη\etathetaΘ\Thetaθ\thetalambdaΛ\Lambdaλ\lambdaMu......
  • 用php找出字符串中连续重复次数最多的字符,你有方法吗?
     找出字符串中连续重复次数最多的字符,这里总结了几种方法,不管是在开发中,还是在面试中都会遇到。方法一<?php$arr=str_split($str);//字符串分隔到数组中$arr=array_count_values($arr);//用于统计数组中所有值出现的次数,返回一个数组//键名为原数组的键值,键值为......
  • 数据类型之字符串
    1、字符串的定义单引号,双引号引起来的2、字符串的索引和切片和转义2.1索引:1.索引值从0开始索引超长会报错IndexError:stringindexoutofrange2.写法:str[0]2.2切片:1.[起始下标:终止下标:步长]:起始下标默认为0,步长默认为12.取头不取尾,左开右闭3.步长为正数,正......
  • [leetcode 87 扰乱字符串] [剪枝搜索]
    importjava.util.HashMap;importjava.util.Map;classSolution{publicstaticvoidmain(String[]args){Solutionsolution=newSolution();booleanres=solution.isScramble("eebaacbcbcadaaedceaaacadccd","eadcaacabad......
  • 文件(夹)批量重命名数字、字母、日期、中文数字大写小写
     首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z目标是重命名下面5个文件(也可以是文件夹等,任意),从大写中文数字“贰”开始 打开工具,找到“文件批量复制”版块,快捷键Ctrl+5 找到右下角重命名按钮,点击打开 把那5个要重命名的文件拖入(也可以右边的按钮......
  • 代码随想录算法训练营第11天 | 栈与队列 20.有效的括号 1047.删除字符串中的所有相邻
    leetcode20.有效的括号题目20.有效的括号给定一个只包括'(',')','{','}','[',']'的字符串s,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。解题思路实现代码leetcod......