首页 > 其他分享 >0506C语言练习:字符串A中删除字符串B中所有相同字母等

0506C语言练习:字符串A中删除字符串B中所有相同字母等

时间:2024-05-06 20:26:55浏览次数:17  
标签:temp int sum 0506 2024 ++ 字符串 C语言

字符串A中删除字符串B中所有相同字母(无论大小写)
/**
 * @func:	字符串A中删除字符串B中所有相同字母(无论大小写)
 * @date 2024/05/06
 * @version 1.0 :版本
 * CopyRight (c)  2023-2024   [email protected]   All Right Reseverd
 */
void repeat(char *a, const char *b)
{
  char *tmp = a;   // 用来写入新字符串的指针
  char *temp_b = b; // 用来遍历b字符串的临时变量
  while (*a)
  {
int found = 0; // 标记是否找到了匹配的字符,如果找到,赋值为1,并退出循环;如果没找到则进行赋值操作
for (temp_b = b; *temp_b; temp_b++)
{
if (*temp_b == *a ||
((*temp_b >= 'A' && *temp_b <= 'Z' && *a >= 'a' && *a <= 'z' && *temp_b + 32 == *a) ||
(*temp_b >= 'a' && *temp_b <= 'z' && *a >= 'A' && *a <= 'Z' && *temp_b - 32 == *a)))
// 判断条件,当遇到b的字符串为字母时,且其大/小写与a字符串相同时进行操作,与方案1相比,进行了优化
{
found = 1; // 找到了匹配的字符
 break;   // 退出本循环,忽略遇到的相同字符
}
}
if (!found)
{
*tmp++ = *a; // 如果没有找到匹配,即没有重复的字符,则复制字符
}
a++; // 总是移动 a 指针到下一个字符
}
*tmp = '\0'; // 设置字符串的末尾为 '\0'
}

int main()
{
  char a[] = "helloworld"; // 使用字符数组而不是字符串指针,否则无法修改
  const char *b = "lo";
  repeat(a, b);
  printf("%s\n", a); // 直接打印字符串
  return 0;
}

统计二维数组 int w【N】【N】周边元素值的平均值,但要注意的是不要重复计算四个角上的元素值。

/**
 * @func:计算二维数组的周边元素平均值
 * @date 2024/05/06
 * @version 1.0 
 * CopyRight (c)  2023-2024   [email protected]   All Right Reseverd
 */
#define N 3
int main()
{
    int w[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int i = 0;
    int sum = 0;
    for (i = 0; i < N; i++) // 把第一行和最后一行加上
    {
        sum = sum + w[0][i] + w[N - 1][i];
    }
    for (i = 1; i < N - 1; i++) // 把左侧和右侧除了角部的数加上
    {
        sum = sum + w[i][0] + w[i][N - 1];
    }
    int ave=sum/(4N-4);
    printf("%d \n", sum);
}

计数排序法:

/**
 * @func:计数排序一个数组
 * @date 2024/05/06
 * @version 1.0 
 * CopyRight (c)  2023-2024   [email protected]   All Right Reseverd
 */
void CountSort(int A[], int B[], int bufsize)
{
    int count = 0; // 记录个数
    for (int n = 0; n < bufsize; ++n)
    {
        count = 0; // 计数器清0
        // n作为数组A的元素下标
        for (int m = 0; m < bufsize; ++m)
        {
            if (A[m] < A[n])
                count++;
        }
        B[count] = A[n];
    }
}
int main(int argc, char *const argv[])
{
    int i;
    int A[9] = {8, 6, 7, 11, 12, 13, 14, 2, 1};
    int B[9] = {0};//利用另外一个数组来存储排序后的元素
    int n = sizeof(A) / sizeof(A[0]);
    for (i = 0; i < 9; i++)
        printf("%d ", A[i]);
    puts(""); // 前后两次遍历,进行对比
    CountSort(A, B, n);
    for (i = 0; i < 9; i++)
        printf("%d ", B[i]);
}

标签:temp,int,sum,0506,2024,++,字符串,C语言
From: https://www.cnblogs.com/cino/p/18175784

相关文章

  • 删除A字符串中B字符串有的字符
    char*DelStrAofStrB(char*strA,char*strB){//判断字符串B是否到尾部while(*strB!='\0'){//判断字符串B的当前字符是否属于字母(不论大小写)if((*strB<'A'||*strB>'Z')&&(*strB<'a'||*str......
  • 高级C语言7
    预处理:程序员所编译C代码不能被直接编译,它需要一段程序把它先翻译一下,被翻译过程预处理,负责翻译的程序叫预处理器,被翻译的指令叫预处理指令,C代码中以#开头的都是预处理指令。gcc-Exxx.c查看C代码的预处理结果,显示在终端gcc-Exxx.c-oxxx.i把预处理的结果保存到文件中,以.......
  • 07. C语言程序执行流程控制
    【有条件执行语句】ifesle语句ifelse语句根据一个条件确定是否执行一段代码,执行条件是一个布尔值,布尔值为true则执行,为false则不执行,同时可以设置不符合条件时执行的语句。if(执行条件){  符合条件时执行的代码;}else{  不符合条件时执行的代码;}使用事项:1......
  • C语言加强
    变量、指针和关键字两个口诀:变量变量,能变,就是能读能写,必定在内存(RAM)里指针指针,保存的是地址,32位处理器中的地址都是32位的,无论是什么类型的指针变量,都是4字节指针对于32位处理器里面,地址是32位的,所以指针的大小为4字节,sizeof(p)=4,sizeof(*p)=指针所指向的......
  • 高级C语言6
    结构:什么是结构:​ 是一种由程序员设计的复合数据类型,它由若干个其它类型的成员组成,用于统一描述事物的各项属性。​ 使用各类型的变量也可以描述事物的各项属性(如:通讯录项目),但使用麻烦且容易出错,没有使用结构方便,安全性高、统一性高,同时结构也是面向对象编程的基础。​ 基础C......
  • 高级C语言5
    输出缓冲区:​ 当我们使用标准库的输出系列函数打印数据到屏幕,数据并不会立即显示到屏幕上,而先存储到一块内存中,我们把这块内存称为输出缓冲区,等满足相关条件后,再从缓冲区中显示到屏幕,相关条件有:1、从输出状态切换到输入状态。2、缓冲区满了,1k=1024个字节,系统会把缓冲区中所有数......
  • 用php找出字符串中连续重复次数最多的字符,你有方法吗?
     找出字符串中连续重复次数最多的字符,这里总结了几种方法,不管是在开发中,还是在面试中都会遇到。方法一<?php$arr=str_split($str);//字符串分隔到数组中$arr=array_count_values($arr);//用于统计数组中所有值出现的次数,返回一个数组//键名为原数组的键值,键值为......
  • 高级C语言2
    计算机的内存长什么样子?1、计算机中的内存就像一叠非常厚的“便签”,一张便签就相当于一个字节的内存,一个字节有8个二进制位2、每一张“便签”都有自然排序的一个编号,计算机是根据便签的编号来访问、使用"便签"3、CPU会有若干个金手指,每根金手指能感知高低电平,高电平转换成1,低电......
  • 高级C语言1
    一、程序的内存分段:(进程映像)​ 当执行程序的运行命令后,操作系统会给程序分配它所需要的内存,并划分成以下内存段供程序使用:text代码段:​ C代码被翻译成二进制指令后存储在可执行文件中,当可执行文件被操作系统执行时,它会把里面的二进制指令(编译后的代码)加载到这个内存段,它里面......
  • 06. C语言指针
    【指针】C语言使用数据名调用数据,数据名相当于C语言的直接寻址,直接寻址只能调用固定数据,而指针是间接寻址,指针存储了另一个数据的地址,使用指针调用数据时首先取指针存储的内存地址,之后使用此地址调用数据,使用间接寻址有如下几点优势:1.统一数据的调用方式,因为指针是调用数据的中间......