在C语言中如何在两个字符串间精准添加12个空格?
要在两个字符串之间精准插入12个空格,用printf的格式化功能就能搞定,不用手动敲空格或者依赖不靠谱的制表符。
先改你代码里的几个明显问题:
- 第一个
printf里的"name job"是固定文本,根本不需要传&a、&b,多传参数只会搞乱输出逻辑。 %s格式符要的是字符串指针,数组名a、b本身就是指针,不用加&,加了反而错。
下面给三种靠谱的实现方式:
方式1:用格式化宽度自动补空格
用%12s把空字符串撑成12个空格,直接插在两个字符串中间:
#include<stdio.h> int main(){ char a[3] = "a"; char b[3] = "b"; printf("name job\n"); printf("%s%12s%s\n", a, "", b); return 0; }
%12s的意思是把输出内容(这里是空字符串)填充到12个字符宽度,默认用空格补,刚好就是12个空格。
方式2:动态指定空格数(更灵活)
如果以后要改空格数量,用%*s动态传宽度值,不用改格式字符串:
#include<stdio.h> int main(){ char a[3] = "a"; char b[3] = "b"; int space_num = 12; // 想改数直接改这里就行 printf("name job\n"); printf("%s%*s%s\n", a, space_num, "", b); return 0; }
方式3:循环打空格(直观但麻烦点)
要是觉得格式化太绕,直接循环12次打空格也行:
#include<stdio.h> int main(){ char a[3] = "a"; char b[3] = "b"; printf("name job\n"); printf("%s", a); for(int i=0; i<12; i++){ putchar(' '); } printf("%s\n", b); return 0; }
这几种方法都能精准输出12个空格,解决你手动敲空格效率低、制表符对齐乱的问题。
内容的提问来源于stack exchange,提问作者BiBeoLovesCoding
相关产品推荐
相关产品推荐

