C++でプログラミングを始めたばかりの方にとって、「文字列から1文字を取り出す方法」は非常に基本かつ重要なテクニックです。この記事では、簡単なサンプルコードとともに、その使い方をわかりやすく解説します。
この記事でわかること
- C++で文字列を扱う基本
- 文字列から任意の位置の1文字を取り出す方法
- 実用的な使用例
サンプルコードの紹介
まずは、以下のサンプルコードをご覧ください。
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
cout << s[1] << endl;
}
コードの意味を解説
#include <bits/stdc++.h>
標準ライブラリを一括で読み込むおまじないのようなもの。競技プログラミングではよく使われます。string s;
ユーザーからの入力を格納する文字列変数を定義します。cin >> s;
標準入力から文字列を受け取ります。cout << s[1] << endl;
入力された文字列の2文字目(インデックス1の文字)を出力します。C++では、インデックスは0から始まる点に注意してください。
実行例
入力: apple
出力: p
上記の場合、s[1]
は 'p'
を表しています。
文字列から特定の1文字を取得する方法
C++では、string
型の変数に対してインデックス演算子 []
を使うことで、特定の位置の1文字を簡単に取得できます。
char c = s[3]; // 4文字目(インデックス3)を取得
このようにすると、c
にはs
の4番目の文字が格納されます。
応用:for文で1文字ずつ処理する
以下のように、ループで全ての文字にアクセスすることも可能です。
for (int i = 0; i < s.size(); i++) {
cout << "s[" << i << "] = " << s[i] << endl;
}
よくあるエラーと注意点
インデックスが範囲外になると未定義動作になります!
例えば、5文字しかない文字列に対してs[5]
を指定するとエラーや予期しない動作が起こることがあります。- 空文字列に対して
s[0]
を使うと危険です。
入力チェックをするようにしましょう。
まとめ
- C++では、文字列から1文字を抜き出すにはインデックス演算子
[]
を使う - インデックスは0から始まる
- 安全のため、文字数を超えたインデックスに注意すること
捕捉
よくあるパターン。C++で最後の文字を取得したい場合は?
char last = s[s.size() - 1];
文字を部分的に変更したい!
s[0] = 'A'; // 最初の文字を'A'に変更
C++での文字列操作はプログラムの基礎です。この記事が、あなたの学習の一助になれば幸いです!