C++ 文字列が空かどうかを検出する方法

C Wen Zi Liega Kongkadoukawo Jian Chusuru Fang Fa



C++ プログラミングでは、テキスト データの管理と操作はソフトウェア開発の基本的な側面です。文字列は文字列として機能し、テキストデータを管理する上で極めて重要です。プログラマーがよく遭遇する一般的なシナリオの 1 つは、C++ 文字列が空かどうかを判断する必要があることです。文字が含まれていない文字列は空文字列と呼ばれます。幸いなことに、C++ には、文字列が空であることを確認するための簡単なメソッドが標準ライブラリ内に用意されています。この記事では、C++ 文字列が空かどうかを検出するために使用されるメソッドとテクニックについて説明し、プログラム内で文字列データを処理および検証するための基礎を提供します。

方法 1: Empty() メンバー関数を使用する

文字列が空かどうかを判断する C++ の簡単な組み込みアプローチの 1 つは、「empty()」メンバー関数を利用することです。 「empty()」関数は標準 C++ 文字列クラスの一部であり、文字列に文字がないかどうかを確認する便利な方法を提供します。

以下は、 empty() 関数の使用法を示す簡単な例です。







#include
#include <文字列>
を使用して 名前空間 標準 ;

整数 主要 ( {

文字列空のStr ;

もし ( 空の文字列。 空の ( {
コート << 「文字列が空です。」 << 終わり ;
} それ以外 {
コート << 「文字列が空ではありません。」 << 終わり ;
}

戻る 0 ;
}

この C++ コード スニペットでは、入力操作と出力操作を容易にし、文字列を操作するために、 などの必要なヘッダー ファイルを含めることから始めます。 「main()」関数内で、「emptyStr」という名前の文字列変数を宣言します。この文字列は最初は空であり、文字は含まれていません。次に、C++ の「string」クラスによって提供される「empty()」メンバー関数を使用します。名前が示すように、「empty()」関数は、呼び出された文字列が空かどうかをチェックします。



この例では、「emptyStr」文字列に対してこの関数を呼び出します。これに続いて、条件ステートメントを使用して、「empty()」関数によって返されるブール結果を評価します。文字列が実際に空の場合、プログラムは文字列が空であることを示すメッセージを出力します。一方、文字列に文字が含まれている場合、プログラムは文字列が空ではないことを示すメッセージを出力します。



提供された C++ コードの出力は次のとおりです。





方法 2: Size() メンバー関数を使用する

C++ 文字列が空かどうかを検出する別のアプローチには、「string」クラスによって提供される「size()」メンバー関数を利用することが含まれます。空であることを示すブール値を直接返す「empty()」関数とは異なり、「size()」は文字列内に存在する文字数を返します。空であるかどうかを確認するには、空の文字列のサイズがゼロであるため、「size()」の結果をゼロと比較します。



以下に例を示します。

#include
#include <文字列>
を使用して 名前空間 標準 ;

整数 主要 ( {

文字列 myEmptyString ;

もし ( myEmptyString。 サイズ ( == 0 {
コート << 「指定された文字列は空です。」 << 終わり ;
} それ以外 {
コート << 「指定された文字列は空ではありません。」 << 終わり ;
}

戻る 0 ;
}

この例では、「myEmptyString」という名前の文字列変数を初期化せずに宣言し、デフォルトで空のままにします。次に、「size()」関数を呼び出して、「myEmptyString」文字列のサイズまたは文字数を決定します。 「if」ステートメントは、サイズが文字列が空であることを示すゼロに等しいかどうかを評価します。この条件が満たされると、指定された文字列が空であることを示すメッセージがコンソールに出力されます。逆に、サイズがゼロ以外の場合、制御フローは「else」ブロックに移行し、指定された文字列が空ではないことを確認する別のメッセージが表示されます。

方法 3: 空の文字列リテラルとの比較を使用する

C++ 文字列が空かどうかを判断する追加の手法には、空の文字列リテラルとの直接比較が含まれます。空の文字列リテラルは、「」のように間に文字を入れない二重引用符のペアで表されます。指定された文字列とこの空の文字列リテラルを比較することで、文字列に文字が含まれているかどうかを確認できます。

このアプローチを説明する例を次に示します。

#include
#include <文字列>
を使用して 名前空間 標準 ;

整数 主要 (
{
文字列のユーザー名 ;

コート <> ユーザー名 ;

もし ( ユーザー名 == 「」
{
コート << 「エラー: ユーザー名を空にすることはできません。」 << 終わり ;
}
それ以外
{
コート << 'こんにちは、 ' << ユーザー名 << 「! 私たちのプラットフォームへようこそ。」 << 終わり ;
}

戻る 0 ;
}

この場合、ユーザーにユーザー名の入力を求めるアプリケーションを起動します。プログラムは、ユーザーの入力を保存する「username」という名前の文字列変数を宣言することから始まります。続いて、ユーザーに「ユーザー名を入力してください:」というメッセージが表示され、ユーザーの入力は「cin」ストリームを使用してキャプチャされます。次に、プログラムは条件文を使用して、入力されたユーザー名が空かどうかをチェックします。これは、等価演算子 (==) を使用して空の文字列リテラルと直接比較することによって行われます。ユーザー名が空であることが判明した場合、プログラムは「エラー: ユーザー名を空にすることはできません」というエラー メッセージを出力します。ただし、ユーザー名が空でない場合、プログラムは、入力されたユーザー名と「こんにちは、[ユーザー名]! プラットフォームへようこそ」という挨拶を組み込んだパーソナライズされたウェルカム メッセージを表示します。

ユーザー名を指定しなかった場合の出力は次のとおりです。

ユーザー名を指定した場合の出力は次のとおりです。

方法 4: 三項演算子の使用

三項演算子は条件文を 1 行で簡潔に表現するため、コードがよりコンパクトになります。三項演算子は、文字列が空かどうかを確認する条件を評価した後、2 つの値のいずれかを返します。この場合、「empty()」メンバー関数を使用して空かどうかを確認し、三項演算子を使用して対応するメッセージを割り当てることができます。

わかりやすい例を次に示します。

#include
#include <文字列>
を使用して 名前空間 標準 ;

整数 主要 ( ) {
文字列サンプル文字列 = 'こんにちは世界!' ;

コート << 「文字列は」 << ( サンプル文字列。 空の ( ) ? '空の。' : '空ではない。' ) << 終わり ;

戻る 0 ;
}

次に、「sampleString」という名前の文字列変数を宣言し、「Hello, World!」で初期化します。コンテンツ。 「cout」ステートメント内で三項演算子を使用して、文字列が空かどうかを判断します。三項演算子は、「sampleString.empty()」条件を評価して文字列が空かどうかを確認し、条件が true の場合は対応する「文字列が空です」メッセージを出力し、条件が true の場合は「文字列は空ではありません」を出力します。間違い。プログラムは、実行が成功したことを示す 0 を返して終了します。このプログラムを実行すると、次の出力が生成されます。

結論

C++ 文字列が空かどうかを検出することは、文字列の操作と処理の基本です。この記事では、いくつかの方法とそれぞれの利点を検討しました。 「empty()」メンバー関数は、文字列が空であることを明確に示す最も直接的で一般的に使用される関数です。 「size()」を使用すると、文字列の長さをチェックするという別のアプローチが提供されます。空の文字列リテラルとの比較は簡単で直感的ですが、三項演算子を使用すると、チェックをより複雑なロジックに統合する柔軟性が得られます。適切なアプローチを選択する際には、プログラムの特定のニーズを考慮する必要があります。