質問: C++で、stringとcharがありますが、違いはなんですか? なんかforで一時的に使うやつにはchar使う傾向がある気がしますが。
回答: クラスも型の一種なんだけどね... まず。charは文字型。stringは文字列を扱う型。 文字ってのは、一般で言う文字とはちょっと違う定義で、各文字一つ一つにつけてある番号:文字コードのこと。少なくともソースコードに使える文字群を文字コードに割り当てた範囲を格納出来るだけの整数型が文字型。 C++の前身Cでは、文字列というのは文字型の配列であってNUL文字で終端(最後にNUL文字を付加)してあるもののこと。Cの場合には、文字列を扱う場合はこの構造を強く意識して、正しく扱わないといろいろな事故が起こる。重要なデータを壊したりとか機械が暴走したりとかセキュリティの脆弱性になったりとか。正しく扱えばいいといえばそうなんだけど、結構面倒。 そこで、C++では、標準でstringという文字を便利に、楽に扱う道具が用意された。C++は、Cのプログラムもほとんどそのまま使えることがウリだから、char/charの配列とstringは非常に親しい関係に設定されていて、stringに格納されている文字列の各文字をcharで取り出して一文字ずつ処理する、なんて使い方も想定されているし、実際によく行われる...というのが > forで一時的に使うやつにはchar使う傾向 ということになる。