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

Day29~删除一个字符串中出现次数最少的字符(小写字母)

删除一个字符串中出现次数最少的字符(小写字母)

#include <stdio.h> #include <string.h> #include <stdlib.h> #define MAX_SIZE 1024 // 统计每个字母出现的次数 void sta_str_count(char *str, int *count) { while (*str != '\0') // 遍历整个字符 { count[*str - 'a']++; // 统计次数 str++; // 地址后移 } } // 寻找出现次数最少的那个字母 int small_count(int *count) { int min = 0; // 初始化最小值为0 for (int i = 0; i < 26; i++) // 遍历26个小写字母 { if (count[i] != 0) // 找到第一个出现过的字母 { min = count[i]; // 把第一个出现过的字母的次数赋值给min for (; i < 26; i++) // 从当前i的位置继续遍历剩余字母 { if ((count[i] != 0) && (count[i] < min)) // 若当前字母出现过,且次数比当前min更小,则更新min { min = count[i]; } } return min; // 返回最小值 } } } // 删除这个字符 void del_str(char *src, int min, int *count) { char *temp = src; while (*temp != '\0') // 遍历 { if (count[*temp - 'a'] == min) // 判断当前字母的出现次数是否等于最小值min { char *del = temp; // 临时覆盖数组,指向当前要删除的字符 while (*del != '\0') { *del = *(del + 1); // 删除当前字符 del++; // 指针后移 } } else { src++; temp++; } } *src = '\0'; } int main(int argc, char **argv) { if (argc != 2) { printf("请输入一串字符串\n"); exit(1); } int count[26] = {0}; char str[MAX_SIZE]; strcpy(str, argv[1]); sta_str_count(str, count); // 测试 // for (int i = 0; i < 26; i++) // { // printf("%c : %d\n", 'a' + i, count[i]); // } int min = small_count(count); // 测试 // printf("min = %d\n", min); if (min > 0) { del_str(str, min, count); } printf("str = %s\n", str); return 0; }
http://www.cnnetsun.cn/news/93604.html

相关文章:

  • 速藏!AI大模型工程师进阶手册:从入门到实战的全攻略
  • NVIDIA Profile Inspector终极优化指南:解锁显卡隐藏性能
  • Ubuntu执行apt-get update报错:W: 无法下载 http://cn.mirrors.ustc.edu.cn/ubuntu/dists/bionic/InRelease 连接失败
  • LobeChat能否对接古籍数据库?中华传统文化智能问答系统
  • 微信多设备登录难题的终极解决方案
  • PlayCover深度解密:在Mac上畅享iOS应用的终极方案
  • RGBD slam
  • BBDown完全指南:轻松下载B站视频的5大实用技巧
  • 历时两年多,“水下大疆”IPO又有新进展! 深之蓝海洋科技股
  • MusicFree插件完全指南:解锁个性化音乐体验的终极教程
  • 显卡驱动终极清理方案:Display Driver Uninstaller完整使用指南
  • 5分钟从入门到精通!PandaWiki:零代码小白的AI编程助手
  • 基于JAVA的图书馆图书资源检索借阅系统
  • 原神自动化脚本7大实用技巧:新手也能快速上手的完整指南
  • 基于Java的奖学金评定评优系统的设计与实现
  • 03-编写和运行Playbook
  • 如何用Locale Emulator实现完美区域语言模拟:新手终极指南
  • Java与操作系统常用命令交互全解析
  • Mac微信防撤回插件WeChatIntercept:终极完整使用指南
  • LobeChat能否实现AI律师函撰写?法律文书自动化产出
  • 基于Python的在线零食购物商城系统的设计与实现
  • 小爱音箱AI升级终极指南:三步打造你的智能语音管家
  • 如何设计吸引眼球的放假通知图片
  • Wallpaper Engine终极下载指南:免费获取创意工坊壁纸的完整教程
  • 终极指南:如何用QtScrcpy实现零延迟Android投屏控制
  • 华为认证的证书含金量到底怎么样?谁适合考?谁没必要浪费时间?
  • 六音音源重生之路:让洛雪音乐重获新生
  • QtScrcpy跨平台投屏终极指南:让你的手机在电脑上“活“起来
  • 鸣潮自动化工具终极指南:5分钟实现全自动游戏体验
  • 百度网盘提取码智能获取工具使用全攻略