首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何智能地在每个数字中间加一个逗号?

如何智能地在每个数字中间加一个逗号?

作者头像
Qt君
发布2023-03-17 13:34:29
发布2023-03-17 13:34:29
1.1K00
代码可运行
举报
文章被收录于专栏:跟Qt君学编程跟Qt君学编程
运行总次数:0
代码可运行

❝今天君君在知乎看到一个眼前一亮的回答,分享给大家。❞

  问题是这样的:

如何智能地在每个数字中间加一个逗号?

代码语言:javascript
代码运行次数:0
运行
复制
头尾部都没有','符号,用C语言实现。
我感觉用if感觉太复杂了,有没有更简单的?

例如:

输入:
a[6]={1,2,3,4,5,6}

输出:
1,2,3,4,5,6

  下面是"谷雨同学"的回答,挺值得回味的:

代码语言:javascript
代码运行次数:0
运行
复制
#include <stdio.h>
int main(void) {
    int a[6] = {1, 2, 3, 4, 5, 6}, i;
    for (i = 0; i < 6; i++) {
        printf(",%d" + !i, a[i]);
    }
    return 0;
}

  上面回答中,利用了字符指针的偏移。机智地去除了第一个,符号。

  当i「等于」0时:

代码语言:javascript
代码运行次数:0
运行
复制
printf(",%d" + !i, a[i]);
=>
printf(",%d" + !0, a[0]);
=>
printf(",%d" + 1, a[0]);
=>
printf("%d", a[0]);

  当i「不等于」0时:

代码语言:javascript
代码运行次数:0
运行
复制
printf(",%d" + !i, a[i]);
=>
printf(",%d" + !2, a[2]); // 这里以i = 2为例。
=>
printf(",%d" + 0, a[2]);
=>
printf(",%d", a[2]);

问题链接: https://www.zhihu.com/question/412135686

"谷雨同学"回答链接: https://www.zhihu.com/question/412135686/answer/1396323238

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Qt君 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何智能地在每个数字中间加一个逗号?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档