c语言编程怎么画表格

时间:2025-01-27 06:58:41 网络游戏

在C语言中,可以通过以下步骤来绘制表格:

获取用户输入

用户首先输入一个整数,表示接下来有多少行信息。

每行由若干单元组成,单元间用逗号分开。

处理输入数据

读取用户输入的每一行,并存储在字符数组中。

计算每列的最大宽度,以便确定表格的列宽。

输出表格

使用嵌套循环来遍历每一行和每一列。

在每一行中,使用竖线 `|` 分隔单元格,并使用连字符 `-` 填充单元格以使其对齐。

```c

include

include

define MAX_ROWS 30

define MAX_COLS 40

define MAX_CELL_LEN 100

void chart(int n, char s[][MAX_CELL_LEN], int max_col[], int col_width);

int main() {

int n;

printf("Enter the number of rows: ");

scanf("%d", &n);

getchar(); // To consume the newline character

char input[MAX_ROWS][MAX_CELL_LEN];

for (int i = 0; i < n; i++) {

printf("Enter row %d: ", i + 1);

fgets(input[i], MAX_CELL_LEN, stdin);

input[i][strcspn(input[i], "\n")] = 0; // Remove newline character

}

int max_col[MAX_COLS] = {0};

chart(n, input, max_col, 0);

return 0;

}

void chart(int n, char s[][MAX_CELL_LEN], int max_col[], int col_width) {

int i, j, k, max;

for (i = 0; i < n; i++) {

for (j = 0; j < strlen(s[i]); j++) {

if (s[i][j] == ',' || j == strlen(s[i]) - 1) {

max_col[j] = j == strlen(s[i]) - 1 ? j : max_col[j];

printf("|");

} else {

printf("%-*s", max_col[j] + 1, s[i] + j);

}

}

printf("|\n");

}

}

```

代码解释:

输入部分

用户输入行数 `n`。

使用 `fgets` 读取每一行,并去除末尾的换行符。

处理输入数据

`max_col` 数组用于存储每列的最大宽度。

`chart` 函数遍历每一行,计算每列的最大宽度。

输出表格

使用嵌套循环遍历每一行和每一列。

使用 `printf` 输出表格,使用 `|` 分隔单元格,并使用 `%-*s` 格式化输出以使内容左对齐。

示例输出:

```

Enter the number of rows: 3

Enter row 1: cat,dog,good-luck

Enter row 2: 1,2,5

Enter row 3: do not use,,that

|cat |dog|good-luck|

|1 |2 |5 |

|do |not|use |

|use |,,that |

```

通过这种方式,你可以在C语言中实现一个简单的表格绘制程序。根据具体需求,你可以进一步扩展和优化代码,例如添加更多的功能或改进用户界面。