这种情况有更好的对齐方法吗?书名长了短了都会对齐不了

这种情况有更好的对齐方法吗?书名长了短了都会对齐不了,\t加几个才合适也不知道怎么确定

img

不要用\t对齐
写%10s,表示占10个字符宽度
%10s是右对齐
%-10s是左对齐

char name[50] = "书名", number[50] = "编号";
// 方案1:
printf("%s%15s\n", name, number);  // 第一个数据不填充,第二个数据填充左侧
// 方案2:
printf("%-15s%s\n", name, number); // 第一个数据填充右侧,第二个数据不填充

多个数据同理。望采纳,谢谢!

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7737934
  • 这篇博客你也可以参考下:链式结构实现一元多项式的乘法与加法运算
  • 除此之外, 这篇博客: 【开卷数据结构 】多项式的链表表示中的  多项式加法 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • 您还可以看一下 吴刚老师的【吴刚大讲堂】电商视觉的排版与应用方法课程中的 基础页面功能布局优化方法小节, 巩固相关知识点
    • 以下回答由chatgpt基于相关博客总结生成:

      针对排版中遇到书名过长或过短无法对齐的问题,可以考虑使用字符串格式化的方法来处理。具体步骤如下:

      1. 定义一个适当的占位符,用于指示书名的所占位置,例如可以使用"%"符号。同时,根据需要的对齐方式,可以在该占位符前或后加上一些修饰符(例如左对齐可以使用"-%",右对齐可以使用"%"等)。

      2. 使用sprintf函数将书名与定义好的占位符结合起来,生成一个格式化的字符串。

      3. 将格式化后的字符串输出到目标位置即可。根据具体的情况,这里的输出方式可以是直接输出到终端进行查看,也可以是输出到文件或其他数据结构中。

      下面是一个示例代码,该代码实现了一个简单的左对齐格式化输出的功能:

      #include <stdio.h>
      #include <string.h>
      
      #define MAX_BOOK_NAME_LEN  50  // 书名最大长度
      #define MAX_FORMAT_LEN     100 // 输出格式化字符串最大长度
      
      void format_book_name(char *book_name, char *format_str, int max_format_len)
      {
          // 构造占位符字符串,其中"%-50s"表示左对齐,占位符为50个字符
          char placeholder[MAX_BOOK_NAME_LEN + 3];
          sprintf(placeholder, "%%-%ds", MAX_BOOK_NAME_LEN);
      
          // 将占位符字符串与书名结合,构造格式化字符串
          sprintf(format_str, placeholder, book_name);
      
          // 在调试时,可以输出格式化字符串进行检查
          printf("%s\n", format_str);
      }
      
      int main()
      {
          char book_name[MAX_BOOK_NAME_LEN] = "C Programming Language";
          char format_str[MAX_FORMAT_LEN];
          format_book_name(book_name, format_str, MAX_FORMAT_LEN);
      
          return 0;
      }
      

      除了字符串格式化,还可以使用其他的排版工具来对齐文本,例如LaTeX等。但这些工具的使用可能需要一定的学习和调试成本,根据具体的需求而定。