文字列を文字配列に変換する

C++Beginner
オンラインで実践に進む

はじめに

この実験では、C++ で文字列を文字配列に変換する方法を示します。string.h ライブラリに定義されている c_str() メソッドを使用して、文字列を文字配列に変換します。

ライブラリをインクルードして名前空間を定義する

以下のコマンドを使用して、~/project ディレクトリに新しいファイル main.cpp を作成します。

touch ~/project/main.cpp

まず、必要なヘッダーファイルをインクルードし、使用する std 名前空間を定義する必要があります。

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

using namespace std;

変数と入力文字列を宣言する

string 型の変数を宣言し、ユーザーに空白なしの文字列を入力してもらいます。

int main()
{
    string s;
    cout << "Enter a string without any space: ";
    cin >> s;
}

文字列を使って文字配列を作成する

strncpy 関数を使用して、入力文字列から文字配列を作成します。sizeof 演算子を使用して配列のサイズを決定します。

char cArray[1024];
strncpy(cArray, s.c_str(), sizeof(cArray));

配列の要素をゼロで初期化する

配列に不要な値が入るのを避けるため、以下の文を使って配列のすべての要素をゼロに初期化します。

cArray[sizeof(cArray) - 1] = 0;

配列の要素を表示する

次に、配列をループ処理してすべての要素を表示します。

for (int i = 0; cArray[i]!= 0; i++)
{
    cout << "cArray[ " << i << " ]: " << cArray[i] << endl;
}

コードをコンパイルして実行するには、ターミナルで以下のコマンドを使用します。

g++ main.cpp -o main && ./main

まとめ

この実験では、C++ で文字列を文字配列に変換する方法を学びました。c_str() メソッドを使用して、入力文字列から文字配列を作成します。配列のすべての要素をゼロに初期化し、その後、配列をループ処理してすべての要素を表示します。