はじめに
C++の**std::string**クラスは、C言語スタイルのchar配列が抱える煩雑さや危険性を解消し、文字列を安全で直感的に扱えるように設計されています。まるでintやdoubleのような基本データ型のように、自然な構文で様々な操作が可能です。
この記事では、std::stringを使いこなす上で必須となる、以下の4つの基本的な操作方法を、サンプルコードと共にまとめて解説します。
- 入出力:
cin/cout - 代入:
= - 連結:
+ - 比較:
==,!=,<,>など
1. 入出力
std::stringオブジェクトは、標準入出力ストリーム (cin, cout) と >> / << 演算子を使って、簡単に入出力できます。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
int main() {
string name;
cout << "名前を入力してください: ";
cin >> name; // スペースまでを読み取る
cout << "こんにちは、" << name << "さん!" << endl;
return 0;
}
2. 代入
=(代入演算子)を使って、stringオブジェクトに新しい文字列を設定したり、他のstringオブジェクトの内容をコピーしたりできます。
サンプルコード
#include <iostream>
#include <string>
#include <utility> // move
using namespace std;
int main() {
string text1;
text1 = "Hello"; // 文字列リテラルを代入
string text2 = text1; // text1の内容をtext2にコピー
string temp_text = "World";
string text3 = move(temp_text); // C++11以降: ムーブ代入
cout << "text1: " << text1 << endl;
cout << "text2: " << text2 << endl;
cout << "text3: " << text3 << endl;
return 0;
}
3. 連結
+(加算演算子)や +=(複合代入演算子)を使って、文字列同士を簡単に連結できます。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "Modern";
string str2 = " C++";
// + 演算子で連結
string combined = str1 + str2; // -> "Modern C++"
// 文字列リテラルやcharとも連結可能
combined = combined + " is powerful.";
// += 演算子で追記
combined += "!!";
cout << combined << endl;
return 0;
}
4. 比較
比較演算子(==, !=, <, >, <=, >=)を使って、stringオブジェクト同士の辞書順での比較ができます。
サンプルコード
#include <iostream>
#include <string>
using namespace std;
int main() {
string s1 = "apple";
string s2 = "orange";
string s3 = "apple";
cout << boolalpha; // boolをtrue/falseで表示
cout << s1 << " == " << s3 << " -> " << (s1 == s3) << endl; // true
cout << s1 << " != " << s2 << " -> " << (s1 != s2) << endl; // true
cout << s1 << " < " << s2 << " -> " << (s1 < s2) << endl; // true (辞書順で 'a' < 'o')
return 0;
}
解説: 文字列の比較は、先頭の文字から順に、文字コードの大小で辞書的に行われます。
まとめ
今回は、C++のstd::stringにおける、最も基本的な4つの操作(入出力、代入、連結、比較)を解説しました。std::stringは、これらの演算子が適切にオーバーロードされているため、組み込みの数値型とほとんど変わらない、直感的でシンプルな構文で文字列を安全に扱うことができます。
副業から独立まで「稼げる」Webスキルを習得する(PR)
ここまで読んでいただきありがとうございます。 最後に宣伝をさせてください。
「副業を始めたいが、何から手をつければいいかわからない」「独学でスキルはついたが、収益化できていない」という悩みを持つ方には、マンツーマン指導のWebスクール**「メイカラ」**が適しています。
このスクールは、単に技術を教えるだけでなく、**「副業として具体的にどう稼ぐか」**という実務直結のノウハウ提供に特化している点が特徴です。
講師陣は、実際に「副業Webライターから1年で独立して月収100万円」を達成したプロや、現役で利益を出し続けているブロガーなど、確かな実績を持つプレイヤーのみで構成されています。そのため、机上の空論ではない、現場で通用する戦術を学ぶことができます。
副業に特化した強み
- 最短ルートの提示: 未経験からでも実績を出せるよう、マンツーマンで指導。
- AI活用の習得: 副業の時間対効果を最大化するための、正しいAI活用スキルも網羅。
- 案件獲得のチャンス: 運営がWebマーケティング会社であるため、実力次第で社内案件の紹介など、仕事に直結する可能性があります。
受講者の多くは、「在宅でできる仕事を探している」「副業を頑張りたい」という20代・30代・40代が中心です。
受講前には、講師による無料説明が行われます。無理な勧誘はなく、自分に合った副業スタイルやプランを相談できるため、まずは話を聞いてみることから始めてみてはいかがでしょうか。
