首页 > 其他分享 >删除字符串A与字符串B相同的字符

删除字符串A与字符串B相同的字符

时间:2024-05-06 22:01:38浏览次数:20  
标签:字符 删除 char str printf 字符串 strB strA

image

/**
 * file name:DelDestChar.c
 * author   : [email protected]
 * date     : 2024-05-06
 * function : Delete string A alike to string B's charactor
 * note     : None
 * CopyRight (c)   2024  [email protected]  Right Reseverd
 *
**/
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
/**
 *
 * func name      : Delete
 * 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          : [email protected]
 * date            : 2024-05-06
 * version         : V1.0
 * modify history  : None
 *
**/
char* Delete(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;
}

标签:字符,删除,char,str,printf,字符串,strB,strA
From: https://www.cnblogs.com/JinBool/p/18176028

相关文章

  • 字符串Str函数小结
    数据结构字符串Str函数总结·我们学习过很多关于求解字符串相关问题的函数,但是都是每遇到一次算认识了,一定程度上很少进行总结,最近又重新接触到了这类“Str函数”,发现自己还是有点掌握不牢固,以下仅是个人学习总结,有错误之处可指出。如上图所示,在man手册中有许多关于str的函数,......
  • 对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串
    /**@filename: main.c@brief实现对字符串A进行处理,参照字符串B,只有字符串B中的字母在字符串A存在,则不分大小写,从字符串A中删除@[email protected]@date2024/06/[email protected]:版本@property:属性介绍@note补充注意说明CopyRight(c)2023-2024RISE......
  • 删除字符串中与另一个字符串中的相同字母的自定义函数
    #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......
  • 重写 elementPlus 删除方法拦截前 和 tag 标签删除前提示
    <template><el-selectref="myselectref"v-model="currentValue"v-bind="$attrs"><slotname="option"><el-optionv-for="itemin$attrs.options":key="item.v......
  • 修改oracle 字符集
    [oracle@prdb19~]$sqlplus/assysdbaSQL*Plus:Release19.0.0.0.0-ProductiononMonMay611:50:262024Version19.23.0.0.0Copyright(c)1982,2023,Oracle.Allrightsreserved.Connectedtoanidleinstance.SQL>startupRESTRICT;ORACLEinst......
  • vue-i18n的9以上的版本中@被用作特殊字符处理,直接用会报错
    vue3项目中使用vue-i18n的9以上的版本实现国际化,使用过程中出现报错:国际化使用 "validation.regExp.name":"仅允许输入字母、数字与_.@字符"报如下错误 Messagecompilationerror:Invalidlinkedformat1|仅允许输入字母、数字与_.@字符Messagecompilationerror:Un......
  • Less17基于报错的字符型注入
    Less17基于报错的字符型注入打开环境是一个密码重置页面在用户名栏输入各种语句都无效,遂审计源码functioncheck_input($value) { if(!empty($value)) { //truncation(seecomments) $value=substr($value,0,15); } //Stripslashesifmagicquotesenabled......