21xrx.com
2024-11-08 21:18:21 Friday
登录
文章检索 我的文章 写文章
如何在C++输出时实现上下对齐
2023-07-05 05:13:34 深夜i     --     --
C++ 输出 上下对齐

在C++编程中,有时需要将多个字符串按上下对齐的形式输出,这在排版比较严谨的程序中尤为重要。实现上下对齐需要使用一些特定的技巧,下面将介绍一些实现方法。

方法一:使用setw()函数

setw()函数是C++库中的一个函数,可以设置输出的宽度,当输出内容的长度小于设置的宽度时,会在字符串前面补上一些空格。因此,可以通过使用setw()函数来实现上下对齐。

例如,下面的代码可以将两个字符串按照右对齐的方式对齐输出:


#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

  string str1 = "Hello";

  string str2 = "World";

  cout << setw(10) << str1 << endl;

  cout << setw(10) << str2 << endl;

  return 0;

}

运行后的输出结果为:


   Hello

   World

方法二:使用string的成员函数

在C++中,string类提供了一系列便于操作字符串的成员函数,例如substr()、erase()、insert()等,可以通过这些函数来实现上下对齐。

下面的代码使用了substr()函数和append()函数,将字符串进行了截取和添加,实现了上下对齐的效果。


#include<iostream>

#include<string>

using namespace std;

int main()

{

  string str1="Hello";

  string str2="World";

  int len = str1.size()>str2.size()?str1.size():str2.size();

  cout<<str1<<endl;

  cout<<str2.substr(0,str2.size()).append(len - str2.size(), ' ')<<endl;

  

  return 0;

}

运行后的输出结果为:


Hello

World

方法三:使用printf函数

C++中也可以使用C语言提供的printf函数来实现上下对齐,具体实现方法如下:


#include<stdio.h>

#include<string.h>

void print(char ch, int num)

{

  int i;

  for (i = 0; i < num; i++)

    printf("%c", ch);

}

int main()

{

  char str1[] = "Hello";

  char str2[] = "World";

  int len1 = strlen(str1);

  int len2 = strlen(str2);

  int len = len1 > len2 ? len1 : len2;

  int space_num = abs(len2 - len1);

  printf("%s\n%s", str1, str2);

  print(' ', space_num);

  printf("\n");

  return 0;

}

运行后的输出结果为:


Hello

World

以上三种方法都可以实现上下对齐的效果,开发者可以根据实际需求选择其中一种或多种方法来使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复