首页 > 其他分享 >DeleteChar函数

DeleteChar函数

时间:2024-05-07 20:33:25浏览次数:23  
标签:字符 函数 int 32 DeleteChar char ++ tolower

设计一程序实现功能,处理字符串A,处理规则是只要B字里面有的字母,不分大小写,一律从A 字符串中删掉。

char *delChar(char* A, const char* B){
    int c;  //记录A中相同的字符数且与B中字符相同的情况
    while(*B){
        if((*B < 'A' || *B > 'Z') && (*B < 'a' || *B > 'z')){
            B++;
            continue;
        }
        for (int i = 0; A[i]; ++i) {
            //相同字符就删除A中的字符
            /*if((*B == A[i] || (*B)-32 == A[i] || (*B)+32 == A[i]) &&
            (A[i] == A[i+1]|| A[i]-32 == A[i+1] || A[i]+32 == A[i+1]))
                c++;

            else if(*B == A[i] || (*B)-32 == A[i] || (*B)+32 == A[i]){
                for (int j = i; A[j] != '\0'; ++j)
                    A[j-c] = A[j+1];
                i -= (c-1);
                c = 0;
            }*/
            //调用tolower函数把大小写字母转变为小写字母来比较
            if(tolower(*B) == tolower(A[i]) && tolower(A[i]) == tolower(A[i+1]))
                c++;
            else if(tolower(*B) == tolower(A[i])){
                for (int j = i; A[j]; ++j)
                    A[j-c] = A[j+1];
                //因为删除了相同的字符,不同字符往前遍历了但还没比较后面的字符,所以要重新在同位置开始比较
                i -= (c-1);
                //重新计数
                c = 0;          
            }
        }
        B++;
    }
    return A;
}
测试
int main(){
    char A[] = "Aasd WQqQq ,q!!FVRqWG";
   char* B = "qWa";
   printf("%s",delChar(A , B));
   return 0;
}
终端输出
sd  ,!!FVRG

标签:字符,函数,int,32,DeleteChar,char,++,tolower
From: https://www.cnblogs.com/Mr--Song/p/18178321

相关文章

  • 系统调用与库函数是什么,区别是什么
    系统调用与库函数是什么,区别是什么今天学习到了文件IO方面,知道了在Linux中使用命令mkdir创建的并不是文件夹而是目录,有很多人喜欢将此认为是文件夹,严格意义上俩者是有很大的不同,今天通过查询资料得知俩者的区别,希望一下对于疑惑的你有所帮助。目录系统调用与库函数是什么,区别是......
  • 自定义单链表(非循环)的基本接口函数
    文件描述及头文件包含/********************************************************************* 文件名称: 单链表(非循环)的基本接口程序* 文件作者:[email protected]* 创建日期:2024/05/07* 文件功能:对单链表的增删改查功能的定义* 注意事项:No......
  • 自定义单链表(非循环)反转的基本函数接口
    题干structListNode*ReverseList(structListNode*head){if(head==NULL||head->next==NULL){returnhead;}else{structListNode*Phead=head;structListNode*temp=head->next;Phead->next=NULL;......
  • 三角函数之二倍角公式
    前置1:圆周角定理:圆周角等于圆心角的一半,因此直径所对的圆周角等于直角前置2:三角形外角定理:三角形的一个外角等于它不相邻的两个内角之和公式1:\(\sin^{2}\theta+\cos^{2}\theta=1\)如上图,\(\DeltaBPA\)内接半圆,设半圆的半径为1,圆点为\(O\),设\(\anglePBA\)为......
  • mysql练习 —— 关于一些函数的使用
    学校作业,拿来记录一下。(老师出的习题貌似是从一本书上拿到的)Q1:使用RAND()函数来获得3个随机值。A1: 解析:rand()函数,获得随机值,产生0-1的随机值。(random,随机) Q2:求3和4的平方根。A2: 解析:sqrt()用于求解平方根。 Q......
  • FREERTOS:vTaskList函数
    函数原型:voidvTaskList(char*pcWriteBuffer);参数:pcWriteBuffer  一个缓冲区,上面提到的细节将以ASCII形式写入其中。假设此缓冲区的大小足以容纳产生的报告。大约为每个任务分配40字节的缓冲区就足够了。打印信息:任务任务状态优先级剩余......
  • 编程:自己写的强密码生成函数:留存
     1privatestaticStringget_StrongPassword(intlen){2if(len<6)3len=6;45Stringdigit="0123456789";6Stringalpha_lower="abcdefghijklmnopqrstuvwxyz";7Strin......
  • 函数式接口验证
    packagecom.xlg.task.common;importjava.util.HashMap;publicclassFunctionalInterfaceTest{publicstaticvoidmain(String[]args){intx=1;inty=2;Stringkey="2";HashMap<String,NoParamConsume>map......
  • [学习笔记] 乘性函数 - 数论
    [SDOI2012]Longge的问题我们要求\(\sum\limits_{i=1}^n\gcd(i,n)\),但\(gcd\)没啥卵用,所以尝试给这n个正整数分组。对于\(gcd(i,n)=1\)的数给他们归到\(G(1)\)这个集合里去,当然,这个集合元素的数量为\(\phi(n)\)。对于\(gcd(i,n)=2\)的数归到\(G(2)\)这个集合里去......
  • 字符串Str函数小结
    数据结构字符串Str函数总结·我们学习过很多关于求解字符串相关问题的函数,但是都是每遇到一次算认识了,一定程度上很少进行总结,最近又重新接触到了这类“Str函数”,发现自己还是有点掌握不牢固,以下仅是个人学习总结,有错误之处可指出。如上图所示,在man手册中有许多关于str的函数,......