首页 > 其他分享 >一串数字不输出末尾空格

一串数字不输出末尾空格

时间:2024-04-14 15:24:08浏览次数:20  
标签:一串 数列 输出 int 个数 空格 末尾

题目中通常要求输出的 n 个数字,两个数字之间用一个空格分隔,开头结尾没有空格。如果直接 printf("%d ", n) 的话,则会在末尾多出一个空格,本文讲述几种不留空格的方式和一个误区。

不留空格的方式

  1. 方法一: 数列长度不确定的情况。设置标记,输出第一个数的时候后边不带空格,输出 2~n 个数的时候在数前边带空格。如下面代码中的 firstPrint。
  2. 方法二: 已知数列长度的情况。当输出第 1~n-1 个数的时候在数后边带空格,输出第 n 个数的时候在数后边不带空格。因此需要用下标判断i是不是头/尾的数。当然已知数列长度的情况也可以采取方法一
#include <stdio.h>
int main() {
    double balance[5] = {1000.56, 2.9, 3.4, 7.2, 59.8};
    int len = 4;
    // 末尾会多一个空格
    for (int i = 0; i <= len; i++) {
        printf("%g ", balance[i]);
    }
    printf("<- space there?\n");

    // 末尾不会多一个空格的方法 1
    int firstPrint = 0;
    for (int i = 0; i <= len; i++) {
        if (firstPrint == 0) {
            printf("%g", balance[i]);
            firstPrint = 1;
        } else {
            printf(" %g", balance[i]);
        }
    }
    printf("<- space there?\n");

    // 末尾不会多一个空格的方法 2
    for (int i = 0; i <= len; i++) {
        if (i == len) {
            printf("%g", balance[i]);
        } else {
            printf("%g ", balance[i]);
        }
    }
    printf("<- space there?\n");
    return 0;
}

误区

\b 可以删掉多余的一个空格,实际上不是的,只是移动了光标位置,输出的内容并没有被删除,见下面代码

C语言中的转义字符\b的含义 码农哈里 2019-06-03

总结:\b的含义是,将光标从当前位置向前(左)移动一个字符(遇到\n或\r则停止移动),并从此位置开始输出后面的字符(空字符\0和换行符\n除外)。

#include <stdio.h>
int main() {
    double balance[5] = {1000.56, 2.9, 3.4, 7.2, 59.8};
    int len = 4;
    printf("请注意观察下面,看上去末尾没有多一个空格\n");
    for (int i = 0; i <= len; i++) {
        printf("%g ", balance[i]);
    }
    printf("\b"); // C语言中的转义字符\b
    printf("<- space there?\n");

    printf("请注意观察下面5是否被删除了?\n");
    printf("12345");
    printf("\b");

    return 0;
}

标签:一串,数列,输出,int,个数,空格,末尾
From: https://www.cnblogs.com/guilinmifen/p/18134175

相关文章

  • 项目中统一处理请求中的字符串参数的空格
    测试controller@RestController@RequestMapping("/test")@Slf4jpublicclassTestController{@GetMapping("/testStringParamTrim")publicTestObjectInfotestStringParamTrim(@RequestParamStringgoodsId,StringgoodsName){......
  • 牛客网-替换空格
    目录问题描述示例具体思路思路一代码实现问题描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为WeAreHappy.则经过替换之后的字符串为We%20Are%20Happy。题目链接:https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef......
  • ctfshow--web7 sql注入空格过滤
    ?id=10//union//select//1,database(),3//%23查看库名查看表名-1/**/union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()),3/**/%23查看flag表下的flag字段-1/**/union/**/select/**/1,(......
  • ctfshow--web6 sql注入空格绕过
    这道题目空格被过滤了,那么我们可以用/**/来替换空格'union/**/select/**/1,(select/**/database()),3#//查看数据库名名字为web2查看web2下的表名'union/**/select/**/1,(select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schem......
  • 将字符串中的所有空格替换为“%20”
    算法:将字符串中的所有空格替换为“%20”解决思路:首先使用StringBuilder对象,之后用For循环遍历并判断字符,最后将StringBuilder对象转换为String对象。代码示例:publicStringreplaceSpaces(StringS,intlength){StringBuildersb=newStringBuilder();......
  • 统计数字字符和空格
    题目描述本题要求编写程序,输入一行字符,统计其中数字字符、空格和其他字符的个数。建议使用switch语句编写。输入格式输入在一行中给出若干字符,最后一个回车表示输入结束,不算在内。输出格式在一行内按照blank=空格个数,digit=数字字符个数,other=其他字符个数......
  • URL有空格,浏览器能打开、cl_http_utility无法打开
    解决过程1、cl_http_utility打开URL失败原因是URL地址有空格,考虑到有空格直接去掉(CONDENSEl_strNO-GAPS),结果去掉之后URL打开是一推乱码失败告终!2、既然浏览器能打开看看浏览器打开的时候空格转换成什么通用字符,浏览器直接把空格转换成%20,于是在程序debug里面把空格改成%......
  • SQL去除空格
    在SQL中,去除空格可以使用以下几种方法:使用`REPLACE()`函数。可以将字符串中的空格替换为空字符,从而去除所有空格。例如,`REPLACE(column_name,'','')`将指定列中的所有空格替换掉。12345使用`TRIM()`函数。这个函数可以去除字符串首尾的空格。例如,`TRI......
  • Base64 空格,加号问题(oss)
    缘由:在一个项目中,app请求tcpdump日志与记录的日志内容不一致请求%2B 识别成 +请求 + 识别成 空格这个在base64解密的时候会出现异常,base64需要的是加号,而不是空格造成的原因:在js中,对url的加密分别由三种方式:escape("aa+aaaa")"aa+aa%20aa"encodeURI("aa+aaaa")......
  • [20240320]空格与sqlpus的sql语句.txt
    [20240320]空格与sqlpus的sql语句.txt--//优化sql语句时遇到的问题,自己上我发现我手工执行获得的sql_id与程序里面的sql_id不一致,原因很多sqlplus下如果是dos文本格--//式,计算的文本会将\r\n字符变成\n,如果多行,文本结尾的空格会删除等等,通过例子说明:1.环境:SCOTT@book>@ver1......