news 2026/2/16 9:32:11

添加逗号问题

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
添加逗号问题

1.现在需要将其转换为千分位格式,即从整数最低位开始,每三位数字插入一个英文逗号,以提高可读性。例如,对于123456789,转换后为 123,456,789。也就是说从后往前只要够三个字符就增加一个英文逗号,怎么才能从后往前数呢,这个是时候就需要逆序字符串,就可以得到从前往后面数三个数据 ,增加一个变量count用来计数,只要能被三整除就将这个位置后面的所有元素都像后面挪动,然后将这个位置增加英文逗号,然后让指针跳过这个英文逗号继续像后面找,直到找到‘\0’,增添完成以后再将字符串逆序一下,打印出来就可以了,最坏的时间复杂度应该是O(n^2),每次到三个都要进去循环,效率不高。只是用了几个常量级的临时变量,空间复杂度是常量级

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<assert.h> void reverse(char* str)//逆序字符串 { assert(str);//断言一下因为后面会解引用,对空指针的解引用很危险 int len = strlen(str); char* left = str; char* right = str + len - 1; while (right>left)//两个指针分别向后面寻找 { char temp = *right; *right = *left; *left = temp; left++; right--; } } int main() { //输入一个字符串,然后将这个字符串逆序,逆序后从前向后遍历,找到三个就添加一个,其他是字符后移 char str[100] = { 0 }; scanf("%s", str); reverse(str);//先逆序 int count = 0; char* temp = str; while (*temp)//*为假说明已经到字符串末尾了 { if (count % 3 == 0&&count!=0) { int len = strlen(str);//每次进来都要重新计算因为添加进去的有英文逗号 char* rear = str+len;//再创建一个变量,字符从后面开始挪动 while (rear!=temp) { *rear = *(rear - 1);//减到temp,把temp空起来 rear--; } *temp = ',';//把英文逗号赋值过去 temp++;//跳过这个英文逗号 } count++;//计数 temp++;//当前字符的位置 } reverse(str); printf("%s",str); return 0; }

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/11 17:37:51

科研实验室温湿度监控新范式:以太网 POE 技术全场景解决方案

科研实验室利用以太网POE供电温湿度传感器进行温湿度监控系统的方案设计需要考虑哪些因素&#xff1f;结合科研实验室的场景特殊性、POE 技术特性及温湿度监控的核心需求&#xff0c;方案设计需重点考虑以下8 大核心因素&#xff0c;覆盖技术选型、场景适配、系统稳定性、合规性…

作者头像 李华
网站建设 2026/2/14 22:58:29

探索SAR ADC:45nm工艺下的高速高精度设计

SAR ADC 10bit 100M采样时钟 转换速率50M/s ENOB 9.8bit gpdk 45nm cadence 管方学习教程电路 两百多页文档 电路包括但不限于&#xff1a;栅压自举开关 CDAC 动态比较器 桥接电容 SAR 逻辑电路 都有testbench安装好就可以直接跑仿真 仿真包含整体电路和子模块电路所有的 …

作者头像 李华
网站建设 2026/2/14 16:24:50

测试价值的量化评估:从成本中心到价值证明的路径探索

走出"质量黑箱"的困境 在敏捷开发和DevOps普及的当下&#xff0c;软件测试团队常常陷入一个尴尬的悖论&#xff1a;所有人都承认测试的重要性&#xff0c;却难以用业务语言证明其具体价值。当项目预算收紧时&#xff0c;测试资源往往首当其冲被削减&#xff0c;这种…

作者头像 李华