Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C++プログラムで文字列を「X」字型に表示する方法

文字列が与えられたとき、その文字列を「X」字型のパターンとして出力するプログラムを作成します。完成イメージは以下の通りです。

C++プログラムで文字列を「X」字型に表示する方法

考え方

このパターンを実現するには、3つの変数を活用します。

  • i:行ごとに左から右へ進む位置を表す変数
  • j:右から左へ進む位置を表す変数(len-1-i で計算)
  • k:各行内のスペースと文字の出力位置を判定するための変数

各行では、k の位置が i または j と一致した場合にのみ該当する文字を出力し、それ以外の位置にはスペースを表示します。これにより、対角線上に文字が配置された「X」字型のパターンが描かれます。

アルゴリズム

START
Step 1 -> 関数 void print(string str, int len) を宣言
    Loop For int i = 0 and i < len and i++
        Set int j = len-1- i
        Loop For int k = 0 and k < len and k++
            IF k == i || k == j
                Print str[k]
            End
            Else
                Print " "
            End
    End
Step 2 -> main() 内での処理
    Declare string str = "tutorialpoint"
    Set int len = str.size()
    Call print(str, len)
STOP

実装例

以下は、上記のアルゴリズムをC++で実装したコードです。

#include<iostream>
using namespace std;
void print(string str, int len){
    for (int i = 0; i < len; i++){
        int j = len-1- i;
        for (int k = 0; k < len; k++){
            if (k == i || k == j)
                cout << str[k];
            else
                cout << " ";
        }
        cout << endl;
    }
}
int main (){
    string str = "tutorialpoint";
    int len = str.size();
    print(str, len);
    return 0;
}

実行結果

上記のプログラムを実行すると、以下のような出力が得られます。

C++プログラムで文字列を「X」字型に表示する方法

なお、このパターンを正しく「X」字型に表示するには、文字列の長さが奇数である必要があります。奇数の長さの場合、中央の行で左右の対角線が1つの文字で交わり、美しいX字型のパターンが完成します。

  1. C++プログラムで文字列を「X」字型に表示する方法

    文字列が与えられたとき、その文字列を「X」字型のパターンとして出力するプログラムを作成します。完成イメージは以下の通りです。考え方このパターンを実現するには、3つの変数を活用します。i:行ごとに左から右へ進む位置を表す変数j:右から左へ進む位置を表す変数(len-1-i で計算)k:各行内のスペースと文字の出力位置を判定するための変数各行では、k の位置が i または j と一致した場合にのみ該当する文字を出力し、それ以外の位置にはスペースを表示します。これにより、対角線上に文字が配置された「X」字型のパターンが描かれます。アルゴリズム 関数 void print(string str, in

  2. 文字列の中から偶数の長さの単語を出力するPythonプログラム

    本記事では、与えられた問題を解決するための考え方と実装方法について解説します。Pythonの基本的な文字列操作を組み合わせることで、初心者の方でも簡単に実装できる内容となっています。 問題文 文字列が与えられたとき、その中に含まれる単語のうち、文字数が偶数であるものをすべて画面に表示するプログラムを作成します。 例えば、「tutorial point」という文字列が入力された場合、「tutorial」は8文字(偶数)なので出力され、「point」は5文字(奇数)なので出力されません。 解決のアプローチ この問題は、以下の手順で解決できます。 split()関数を使って、入力文字列を空白区切り