ubuntu 下实现C语言表格打印出字符串信息,包含中文字符也能对齐!话不多说,有图为证
//整齐打印文件内容的整合函数
void showInfoInorder(STNODE *head)
{
int a = 1 + getLines(head); //读取员工信息并且存入字符串数组中来, 返回记录的行数
int n = 9;
char *name[a*n]; //定义二维字符串数组
char *str[a]; //定义二位字符串数组
int *length[a*n]; //定义一个计数的数组
int max[n]; //存储每一列最大值的
int erwei[a][n]; //二维整形数组, 存储空格数目的
initAarry(name, str, length, a, n); //初始化数组,分配空间
int i = appendColumn(name); //将列名加入字符串数组中
readInfoToArray(name, i, head); //读取链表信息到数组中来
gainColumnMaxLength(name, length, max, erwei, a*n, n); //同下
getMax(erwei, length, max, a*n, n); //获取每一列的最大宽度
addBlank(name, length, a*n, n); //不足的填补空格使之居中
printInfoIntoTable(name, str, max, a, n); //打印函数调用
void showInfoInorder(STNODE *head)
{
int a = 1 + getLines(head); //读取员工信息并且存入字符串数组中来, 返回记录的行数
int n = 9;
char *name[a*n]; //定义二维字符串数组
char *str[a]; //定义二位字符串数组
int *length[a*n]; //定义一个计数的数组
int max[n]; //存储每一列最大值的
int erwei[a][n]; //二维整形数组, 存储空格数目的
initAarry(name, str, length, a, n); //初始化数组,分配空间
int i = appendColumn(name); //将列名加入字符串数组中
readInfoToArray(name, i, head); //读取链表信息到数组中来
gainColumnMaxLength(name, length, max, erwei, a*n, n); //同下
getMax(erwei, length, max, a*n, n); //获取每一列的最大宽度
addBlank(name, length, a*n, n); //不足的填补空格使之居中
printInfoIntoTable(name, str, max, a, n); //打印函数调用
freeSpace(name, str, length, a, a*n); //回收系统资源函数,
}
int main()
{
STNODE *head = NULL;
head = readFileToList("test.txt");
showInfoInorder(head); // 调用函数接口实现功能
destroyLinklist(head); // 释放链表分配的资源
return 0;
}
正常运行的效果图:
使用内存泄漏检测工具检测的结果图:
没有内存泄漏
其他的函数请查看 链接 http://download.****.net/download/lb2616/10039900,提供下载资源