我想创建一个表格显示,有一个名称,身份证,课程年份和平均成绩,并有间距的名称和课程是基于最长的名称和课程有我尝试使用对齐说明符,但是很难假设每次运行程序时可用的最长名称都相同
kqlmhetl1#
你需要遍历你的数据来计算出每一列的宽度:
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX(a, b) (a) >= (b) ? (a) : (b) int main() { char *data[] = {"what", "is", "the", "secret?" }; size_t w = 0; for(size_t i = 0; i < sizeof data / sizeof *data; i++) { size_t tmp = strlen(data[i]); w = MAX(w, tmp); } for(size_t i = 0; i < sizeof data / sizeof *data; i++) printf("| %*s |\n", (int) w, data[i]); }
下面是相应的输出:
| what | | is | | the | | secret? |
1条答案
按热度按时间kqlmhetl1#
你需要遍历你的数据来计算出每一列的宽度:
下面是相应的输出: