C语言实现控制台输出表格样式格式化

本文介绍如何使用C语言实现控制台输出表格的样式格式化,常见于服务后台管理工具,提供table.h和table.c代码示例,展示最终的控制台格式化表格效果。

控制台表格输出需求

在研发工具时,尤其是一些服务后台管理性质的工具时,经常会遇到使用控制台进行命令行方式操作的需求,在控制台使用表格将一些结果有组织地反馈给工具使用者,是一个必要的功能,本文将给出一个用于实现控制台输出表格样式格式化的C语言代码,希望可以帮助到有此方面需求的小伙伴们。

C语言实现

table.h定义表格结构体和format_table方法实现表格样式格式化:

#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
typedef struct TABLE {
  unsigned int row_num;
  unsigned int col_num;
  unsigned int *col_max_width;
  char ***content;
} table;

extern void format_table(table *t, char *formated_out);

通过table 设置表格的行数、列数以及对象行列索引的文本数据,formated_out为格式化完成的字符串。

table.c实现表格样式格式化逻辑:

#include "table.h"

#define CORNER_FLAG "+"
#define ROW_LINE "-"
#define COL_PADDING " "
#define COL_LINE "|"

/**
* 计算在控制台中输出的字符串长度
* str 字符串
**/
static int str_len(unsigned char *str){
  int len = 0;
  int offset = 2;
  int word_len = strlen(str);
  int i = 0;

  for(i; i < word_len; i++){
    if(str[i] < 128){
      len += 1;
    } else {
      len += 2;
      i += offset;
    }
  }
  return len;
}
/**
* 生成表格行边
* col_width 表格的列宽
* col_num 表格列数
* edge 保存行边字符串
**/
static void make_edge(const unsigned int *col_width, const unsigned int col_num, char *edge){
  memset(edge, 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值