当前位置: 首页 > article >正文

编写函数,对字符数组中的字母由大到小的字母顺序进行排序

1. strcspn是把我们用户手动键盘输入字符的时候,因为换行符也会输入,而没有\0,会把换行符也输入进去以及没有\0会乱码,所以strcspn是找出str字符数组里面的\n的位置,然后把\n换成\0

2.在函数实现中使用到toupper函数,是把小写字母都转换成大写,这样做的目的是1.一致性 2.简化逻辑 3.可读性

#include <stdio.h>
#include <string.h>
#include <ctype.h>

void sort_letters(char arr[], int length) {
    int i, j;
    char temp;

    // 冒泡排序
    for (i = 0; i < length - 1; i++) {
        for (j = 0; j < length - i - 1; j++) {
            // 如果当前字符小于下一个字符,交换它们
            if (toupper(arr[j]) < toupper(arr[j + 1])) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main() {
    char str[100]; // 假设用户输入的字符串最大长度为100
    int length;

    printf("请输入一个字符串:");
    fgets(str, sizeof(str), stdin); // 读取用户输入的字符串

    // 去除字符串末尾的换行符
    str[strcspn(str, "\n")] = '\0';

    length = strlen(str);

    printf("原始字符串:%s\n", str);

    sort_letters(str, length);

    printf("排序后的字符串:%s\n", str);

    return 0;
}


http://www.kler.cn/a/313982.html

相关文章:

  • AI时代的研发生产关系,是否有新的可能?
  • 红帽认证和华为认证哪个好?看完这4点你就明白了
  • 探索 JNI - Rust 与 Java 互调实战
  • 基于python 的opencv 使用GrabCut算法分割图像代码
  • 自动驾驶为什么需要时间同步?高精度时间同步如何实现?
  • linux禁止和开启ping的方法
  • Jira Cloud涨价5%-20%,钉钉项目Teambition成优选替代
  • 使用Microsoft Visual Studio Installer Projects 2022打包桌面程序
  • 【大数据】MapReduce的“内存增强版”——Spark
  • 基于对数变换的图像美白增强,Matlab实现
  • Docker 数据目录迁移:一篇详细的技术指南
  • 软件测试 BUG 篇
  • java初学者:一个经典又全新改造的游戏——打地鼠
  • 别用 npm config set registry 设置淘宝镜像了!!!
  • 2025年最新大数据毕业设计选题-基于Hive分析相关
  • 【超星word下载】使用脚本下载的超星 word 文件,显示 Word 发现无法读取的内容
  • 集成学习详细介绍
  • react hooks--useLayoutEffect
  • oracle 11g SYSAUX表空间清理
  • 微服务——网关登录校验(一)
  • ODrive电机驱动算法VScode环境配置笔记教程
  • Java | Leetcode Java题解之第412题Fizz Buzz
  • Apache doris手动部署时报错“Please disable swap memory before installation.“
  • Web 服务器介绍 | 通过 Tomcat 说明其作用
  • 华为摄像机/NVR主动注册协议接入SVMSP平台
  • pytorch入门(2)——TensorBoard的使用