HiroLab

プログラミングに関する情報発信サイト。

C++

【C++】Day 14:C++における文字列操作

投稿日:

Day 14では、C++における文字列操作について学習します。

C++では標準ライブラリである`<string>`を使用して、文字列を操作することができます。

以下に文字列操作の主な内容と、例題、演習問題を提示します。

 

文字列操作の主な内容:

1. 文字列の作成:
– C++では、`std::string`クラスを使用して文字列を作成します。このクラスは可変長の文字列を扱うことができます。

 

2. 文字列の結合:
– `+`演算子を使用して2つの文字列を結合できます。
– `+=`演算子を使用して既存の文字列に別の文字列を追加することもできます。

 

3. 文字列の長さの取得:
– `size()`メソッドや`length()`メソッドを使用して、文字列の長さ(文字数)を取得できます。

 

4. 文字列の比較:
– `==`演算子や`!=`演算子を使用して、2つの文字列を比較できます。

 

5. サブストリングの取得:
– `substr()`メソッドを使用して、指定した位置から特定の文字数のサブストリングを取得できます。

 

6. 文字列の検索:
– `find()`メソッドを使用して、指定した文字列や文字の位置を検索できます。

 

例題:

#include <iostream>
#include <string>

int main() {
std::string str1 = "Hello";
std::string str2 = "World";

// 文字列の結合
std::string result = str1 + " " + str2;
std::cout << "Result: " << result << std::endl;

// 文字列の長さの取得
std::cout << "Length of result: " << result.size() << std::endl;

// 文字列の比較
if (str1 == str2) {
std::cout << "str1 and str2 are equal." << std::endl;
} else {
std::cout << "str1 and str2 are not equal." << std::endl;
}

// サブストリングの取得
std::string sub = result.substr(0, 5);
std::cout << "Substring: " << sub << std::endl;

// 文字列の検索
size_t pos = result.find("World");
if (pos != std::string::npos) {
std::cout << "Found at position: " << pos << std::endl;
} else {
std::cout << "Not found." << std::endl;
}

return 0;
}

 

演習問題:

1. ユーザーに文字列を入力してもらい、その文字列を逆順にして表示するプログラムを作成してください。必要な文字列操作の関数を使用してください。

2. ユーザーに2つの文字列を入力してもらい、それらの文字列を辞書順に並べ替えて表示するプログラムを作成してください。必要な文字列操作の関数を使用してください。

これらの例題と演習問題を解くことで、C++における文字列操作の使い方を理解し、文字列を効果的に操作するスキルを向上させることができます。問題を解いたら、プログラムが正しく動作しているかどうかを確認してみてください。

-C++
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【C++】Day 5:制御文の一つであるループについて

Day 5では、制御文の一つであるループについて学習します。 ループは、特定の処理を繰り返し実行するための構文です。C++には主に3種類のループがあります:forループ、whileループ、do-whi …

【C++】Day 26:デザインパターン「作成型パターン」

Day 26では、デザインパターンのうち「作成型パターン」について学習します。 作成型パターンは、オブジェクトのインスタンスを生成する方法に関するパターンです。主な作成型パターンには、シングルトン、フ …

【C++】Day 27:デザインパターン「構造型パターン」

Day 27では、デザインパターンのうち「構造型パターン」について学習します。 構造型パターンは、クラスやオブジェクトの構造を改良するためのパターンです。主な構造型パターンには、アダプタ、デコレータ、 …

【C++】Day 17:例外安全性とエラーハンドリング

Day 17では、例外安全性とエラーハンドリングについて学習します。 C++では、プログラムが例外(予期しないエラー状態)に遭遇した際に、そのエラーを適切に処理することが重要です。例外安全性は、プログ …

【C++】Day 29:「セキュリティと暗号化」

Day 29では、「セキュリティと暗号化」について学習します。 セキュリティと暗号化は、情報を保護するための重要な概念です。データの機密性、完全性、可用性を確保するために、データの暗号化、ハッシュ化、 …