文字列の回文をチェックする

C++C++Beginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、与えられた文字列が回文かどうかをチェックする C++ プログラムを書く方法を学びます。回文とは、逆順にしたときに元の文字列と同じ文字列です。回文をチェックするには、与えられた文字列を逆順にして元の文字列と比較します。両方の文字列が同じ場合、与えられた文字列は回文であり、そうでなければ回文ではありません。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp(("C++")) -.-> cpp/StandardLibraryGroup(["Standard Library"]) cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/SyntaxandStyleGroup(["Syntax and Style"]) cpp/BasicsGroup -.-> cpp/arrays("Arrays") cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/ControlFlowGroup -.-> cpp/conditions("Conditions") cpp/ControlFlowGroup -.-> cpp/for_loop("For Loop") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/StandardLibraryGroup -.-> cpp/string_manipulation("String Manipulation") cpp/SyntaxandStyleGroup -.-> cpp/comments("Comments") cpp/SyntaxandStyleGroup -.-> cpp/code_formatting("Code Formatting") subgraph Lab Skills cpp/arrays -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/strings -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/conditions -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/for_loop -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/output -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/user_input -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/string_manipulation -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/comments -.-> lab-96181{{"文字列の回文をチェックする"}} cpp/code_formatting -.-> lab-96181{{"文字列の回文をチェックする"}} end

必要なライブラリをインクルードして main() 関数を定義する

まず、必要なライブラリをインクルードして main() 関数を定義します。

#include <iostream>
#include <string.h>

using namespace std;

int main() {
  // コードをここに記述します
  return 0;
}

ユーザーから入力文字列を取得する

次に、ユーザーから入力文字列を取得して、文字配列に格納します。

char inputStr[100];
cout << "Enter a string: ";
cin >> inputStr;

入力文字列の長さを取得する

strlen() 関数を使用して、入力文字列の長さを計算します。

int strLength = strlen(inputStr);

逆順文字列用の配列を作成する

次に、逆順文字列用の配列を作成します。

char reverseStr[strLength];

入力文字列を逆順にする

次に、入力文字列を逆順にして、新しく作成した逆順文字列用の配列に格納します。

for(int i = 0; i < strLength; i++) {
    reverseStr[i] = inputStr[strLength - 1 - i];
}

元の文字列と逆順の文字列を比較する

最後に、元の文字列と逆順の文字列を比較して、入力文字列が回文かどうかを確認します。

if(strcmp(inputStr, reverseStr) == 0) {
    cout << inputStr << " is a palindrome." << endl;
} else {
    cout << inputStr << " is not a palindrome." << endl;
}

完全なコード

#include <iostream>
#include <string.h>

using namespace std;

int main() {
    char inputStr[100];
    cout << "Enter a string: ";
    cin >> inputStr;

    int strLength = strlen(inputStr);
    char reverseStr[strLength];

    for(int i = 0; i < strLength; i++) {
        reverseStr[i] = inputStr[strLength - 1 - i];
    }

    if(strcmp(inputStr, reverseStr) == 0) {
        cout << inputStr << " is a palindrome." << endl;
    } else {
        cout << inputStr << " is not a palindrome." << endl;
    }

    return 0;
}

まとめ

この実験では、与えられた文字列が回文かどうかをチェックする C++ プログラムを書く方法を学びました。これで、任意の文字列を回文かどうかを迅速に確認するためにこのプログラムを使用できるようになりました。