c - 字符串之间的间距
问题描述
puts("***************** CURRENT TRANSACTIONS *****************");
puts("DATE\t\tDESCRIPTION\t\tAMOUNT");
for (int i = 0; i < blocks; i++)
{
if (strcmp("DEPOSIT", description[i]) == 0 || strcmp("deposit", description[i]) == 0)
printf("%s\t%s\t\t\t+%s\n", date[i], description[i], amount[i]);
else
printf("%s\t%s\t-%s\n", date[i], description[i], amount[i]);
}
}
我已经制作了一个类似上面的程序。它应该根据数组打印字符串。一切正常,只是输出不均匀。数据应该采用类似图表的格式,其中每个字符串的开头与标题的开头在同一位置,但由于某些字符串的长度,\t 甚至没有。我想知道除了创建一堆检查字符串长度的 if 语句之外,是否有其他方法可以解决这个问题?
例子:
DATE DESCRIPTION AMOUNT
BLAH BLAH BLAH BLAH BLAH BLAH
BLAH BLAH BLAH BLAH BLAH BLAH
BLAH BLAH BLAH BLAH BLAH BLAH BLAH
解决方案
您仍然可以使用printf
它。
代码:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("%-20s%-50s%-30s\n", "DATE", "DESCRIPTION", "AMOUNT");
printf("%-20s%-50s%-30s\n", "BLAH BLAH", "BLAH", "BLAH BLAH BLAH");
printf("%-20s%-50s%-30s\n", "BLAH", "BLAH BLAH BLAH BLAH", "BLAH BLAH");
printf("%-20s%-50s%-30s\n", "BLAH BLAH BLAH", "BLAH BLAH", "BLAH");
return 0;
}
这是示例输出。
DATE DESCRIPTION AMOUNT
BLAH BLAH BLAH BLAH BLAH BLAH
BLAH BLAH BLAH BLAH BLAH BLAH BLAH
BLAH BLAH BLAH BLAH BLAH BLAH
推荐阅读
- javascript - Javascript 或 php 调用以在同一页面内加载/编辑 html 表行数据
- javascript - Plotly.js:如何使标记仅在放大时显示(x 轴上带有时间的范围滑块)
- html - 用户输入时光标大小与文本大小不匹配
- php - 可在 Drupal/PHP 中配置的 API URL 和参数
- laravel - 如何将 laravel 与 react native 连接起来
- java - 如果我的命令映射值的最后一段表示关于 jsp 文件视图名称,我如何获得最后一段 url?
- linux - 使用 PAT 进行 GitHub 身份验证
- c# - 调用外部变量时出现 NullReferenceException
- twitter-bootstrap - 模态轮播 Bootstrap 5 没有显示正确的图像
- typescript - 离子存储:TypeError:无法读取未定义的属性“get”