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 18:マルチスレッドプログラミングの基礎

Day 18では、マルチスレッドプログラミングの基礎について学習します。 マルチスレッドプログラミングは、複数のスレッドを使用してプログラムを並行して実行することを意味します。各スレッドは独立して動作 …

【C++】Day 7:ユーザー定義関数とライブラリ関数について

Day 7では、ユーザー定義関数とライブラリ関数について学習します。 以下にそれぞれの内容を詳細に説明し、例題と演習問題を提示します。   ユーザー定義関数: – ユーザー定義関 …

【C++】Day 20:マルチスレッドプログラミングの応用

Day 20では、マルチスレッドプログラミングの応用について学習します。 マルチスレッドプログラムは様々な応用が可能であり、より高度なスレッド制御や同期手法を使用して性能や効率を向上させることができま …

【C++】Day 4:制御文の一つである条件分岐(if文、else文、else if文)について

Day 4では、制御文の一つである条件分岐(if文、else文、else if文)について学習します。 条件分岐は、特定の条件に基づいてプログラムのフローを制御するために使用されます。 条件が真(tr …

【C++】Day 28:デザインパターン「行動型パターン」

Day 28では、デザインパターンのうち「行動型パターン」について学習します。 行動型パターンは、オブジェクト間の相互作用や責任の分担に関するパターンです。主な行動型パターンには、ストラテジ、オブザー …