如何智能地在每个数组数字中间加一个「,」?
目录
回答摘录,以下全部转自知乎如何智能地在每个数字中间加一个「,」?
答主:Flint_Stone,我,最笨的方法,转换为字符串
答主:谷雨同学,我最喜欢这个,比较高深但是很实用,很简短
答主:醉卧沙场,最简单,最实用,最易懂
答主:hellojukay ,死磕if(并无贬义)
答主:明日香,三目运算符,融合在printf中,简化的if,也比较推荐
回答摘录,以下全部转自知乎如何智能地在每个数字中间加一个「,」?
问题:
头尾部都没有',',用c语言实现。
我感觉用if感觉太复杂了,有没有更简单的?
我现在还没有想到有效的方法。
有可能我没有说清楚。。。
例如:
输入:
a[6]={1,2,3,4,5,6}
输出:1,2,3,4,5,6
答主:[Flint_Stone],我,最笨的方法,转换为字符串
使用C还是C++,如果C++可以直接使用string
#include <string> #include <iostream>using namespace std;int main() {int a[6] = {1, 2, 3, 4, 5, 6}; // 数组以你的样例实现string res = "";for (int i = 0; i < 6; i++) // 6可变,变成数组元素个数{res += to_string(a[i]);res += ",";}res = res.substr(0, res.size() - 1); // 去掉最后一位逗号cout << res << endl;return 0; }
这是我的C++方法,C语言不擅长,可以采用别的回答
答主:[谷雨同学],我最喜欢这个,比较高深但是很实用,很简短
看了一圈竟然没人说这种方法:
#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; }
一行输出,没有 if 语句,非常简洁
作者:谷雨同学
链接:https://www.zhihu.com/question/412135686/answer/1396323238
评论解释:
谷雨同学
重点是 ",%d"+!i 这个表达式。",%d" 是一个字符串,它可以转换为指向其首元素的指针,然后就可以做加减法。
!i 这个式子只有当 i 为零的时候得 1,其余时候得 0。当 i 为零的时候,printf 的第一个参数就变成 ",%d"+1。这里首先执行从字符串到指针的转换,然后再做指针的+1运算,相当于指针向后移了一位,即指向 "%d"(这里需要一点基础才能看懂)。
所以 ,当 i 为零的时候,执行的输出是 printf("%d",a[i]); 而 i 非零的时候,执行的输出是 printf(",%d",a[i]);。这就实现了题主的要求。
这本质是指针偏移,理解后就会很简单,也会牢记在心,非常实用。
答主:[醉卧沙场],最简单,最实用,最易懂
#include <stdio.h>int main(void) {int a[6]={1,2,3,4,5,6};int i;printf("%d", a[0]);for(i=1; i<sizeof(a)/sizeof(int); i++)printf(", %d", a[i]);printf("\n");return 0; }
执行结果:
$ gcc -o mytest mytest.c -Wall $ ./mytest 1, 2, 3, 4, 5, 6
答主:[hellojukay] ,死磕if(并无贬义)
if怎么就复杂了呢,不要强行给自己添加难度啊,去掉 if 算是"优化"吗,带来的好处是什么呢?
#include<stdio.h>int main(){int arr[6] = {1,2,3,4,5,6};int is_first = 1;for(int i = 0; i < 6; i++){if(is_first){printf("%d",arr[i]);is_first = 0;}else {printf(",%d",arr[i]);}}return 0; }
这不就是 join 么...
#!/usr/bin/perl use strict; use warnings;my @arr = qw/1 3 4 5 6/; my $str = join ",", @arr; print "$str\n";
作者:hellojukay
链接:https://www.zhihu.com/question/412135686/answer/1402390611
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
每次做一个is_first判断,个人认为浪费。
答主:[明日香],三目运算符,融合在printf中,简化的if,也比较推荐
看了一圈为什么没有人这样写???
#include<stdio.h>int main() {int a[10]={1,3,5,7,9,2,4,6,8,10};for(int i=0;i<=9;++i){printf(i?",%d":"%d",a[i]);} }
这不比瞎折腾指针简单吗()
(吾曰:这不是瞎折腾指针)
作者:明日香
链接:https://www.zhihu.com/question/412135686/answer/1525787237
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
你喜欢哪一个?
如何智能地在每个数组数字中间加一个「,」?相关推荐
- 给数子加千分号的方法(每三个数字后加一个逗号)
public class signThousands { /** * 校验字符串是否为数字 * @param str * @return */ public static boolean isNum( ...
- 千分位显示方法(每三位数字之间加一个逗号显示)
千分位显示方法一: export function numberToCurrencyNo(value) {if (!value) return 0// 获取整数部分const intPart = Ma ...
- 计算机一级表格减法,怎么把表格的数字全部加减
1. 怎么让excel所有的数值被减去一个数 使用"选择性粘贴"或者是运算符号(+.-.*./). 方法一.使用选择性粘贴批量减去同一个数(结果在原位置显示): 1.在任意空单元格 ...
- 如何在表格数据中加同一个数_怎么在excel表格中的数字前统一加一个字母
怎么在excel表格中的数字前统一加一个字母以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 怎么在excel表格中的数字 ...
- java 数组a赋值给数组b_java编程将a,b数组中不同的数字保存到一个新的数组中
import java.util.Arrays; import java.util.HashSet; import java.util.Iterator; public class NumDemo { ...
- 快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值
我觉得写得很清晰,希望没有侵犯作者的著作权,原文地址http://blog.csdn.net/hackbuteer1/article/details/6699642 快速找出一个数组中的两个数字,让这 ...
- vue 实现强制类型转换 ,将数字变为字符串,字符串变为数字,数组数字变为字符串、js对象转数组
数字(number)转 字符串(string) 比如:22变为'22',直接加+' '即可 字符串(string)转 数字(number) 比如:'22'转22,在字符串后面*1 数组数字 转 数组字 ...
- 从“AI原生云”,看智能经济时代的新型数字底座
文 | 曾响铃 来源 | 科技向令说(xiangling0815) 毫无疑问,云计算竞逐已经进入全面智能化阶段,几乎所有厂商都在自己的服务中加上智能化要素,以适应政企客户不断深化的转型需求. 但是,就 ...
- IEEE BigData 2022 | 同济大学第一届面向智能道路巡检的城市数字孪生(征稿与竞赛)...
关注公众号,发现CV技术之美 IEEE BigData 2022 研讨会征稿与竞赛 第一届面向智能道路巡检的城市数字孪生(UDTIRI),快来赢取2500美刀奖金! 伴随着人工智能的快速发展,如今社会 ...
最新文章
- gin将请求体绑定到不同的结构体中
- k8s集群RBAC安全机制:role rolebing user
- 安装scipy报错,疑似缺少wheel包,解决方案
- linux内核驱动模块开发步骤及实例入门介绍
- Android之修改app名字客户需要升级需要注意的问题
- mariadb java_java 连接mariadb 无法获取数据源的问题,在ubuntu上部署的时候(原创)...
- 即时通信软件开发的年轻开发者曾注意到
- python的常量_如何给python中设定常量
- 为什么null为对象,并且null和undefined有什么区别?
- qregularexpression和qregexp的区别
- 21岁雅虎卖身引发一波怀旧 市值曾高达1250亿美元
- android 如何播放音频,android如何播放和录制音频
- 弘扬中国文化创作发展文学建设事业,间谈小说 “文味”和“接笔 ”的看法...
- SDUT—Python程序设计实验三(流程控制)
- Valine-实现QQ邮箱识别生成头像地址(完美解决头像问题)
- 隐蔽的API:基于RevitNET操作Revit文档。
- 从Q2财报看百度的转型三部曲
- 华科出身,师从贾佳亚,从鹅厂到创业,90后如何登上胡润U30?
- mipsel上移植花生壳域名服务
- 福建农林大学计算机与信息学院宿舍,2021福建农林大学宿舍条件和新生宿舍图片及分配规则分享...