C++で1文字を文字列に変換する3つの方法を解説
C++で1文字(char型)を文字列(std::string)に変換するには、いくつかの方法があります。この記事では、代表的な3つの手法をサンプルコードと実行結果付きでわかりやすく解説します。
サンプルコード
以下は、C++で単一の文字を文字列に変換するプログラムの例です。3つの異なる方法を1つのコードにまとめています。
#include <iostream>
#include<string>
#include<sstream>
int main() {
char c = 'm';
std::string s(1, c);
std::cout << "stringコンストラクタを使用 : " << s << '\n';
std::string s2;
std::stringstream s1;
s1 << c;
s1 >> s;
std::cout << "stringstreamを使用 : " << s << '\n';
s2.push_back(c);
std::cout << "push_backを使用 : " << s2 << std::endl;
return 0;
}実行結果
上記プログラムの実行結果は以下のとおりです。
stringコンストラクタを使用 : m stringstreamを使用 : m push_backを使用 : m
各方法の詳細解説
方法1:stringコンストラクタを使う
最もシンプルで効率的な方法です。std::stringのコンストラクタは「繰り返す回数」と「文字」を引数に取ることができ、指定した文字を指定回数繰り返した文字列を生成します。1文字だけを変換する場合は、回数に「1」を指定します。
std::string s(1, c);
方法2:stringstreamを使う
stringstreamに文字を書き込み、それを文字列として読み出す方法です。数値と文字列の相互変換などにも応用できる汎用的な手法ですが、コードはやや冗長になります。
std::string s2; std::stringstream s1; s1 << c; s1 >> s;
方法3:push_backを使う
空の文字列に対してpush_backメンバ関数で文字を末尾に追加する方法です。既存の文字列に文字を追記したい場合にも使えるため、実務でもよく利用されます。
s2.push_back(c);
まとめ
1文字だけを変換するなら、最も簡潔なstringコンストラクタがおすすめです。既存の文字列に文字を追加したい場合はpush_back、数値変換などと共通の仕組みを使いたい場合はstringstreamを選ぶとよいでしょう。用途に応じて適切な方法を使い分けることで、より読みやすく保守しやすいコードを書くことができます。
-
C++でint型をstring型に変換する方法を解説
整数(int)を文字列(string)に変換したい場合、いくつかの方法があります。まずはC言語由来のitoa関数を使う方法から見ていきましょう。 itoa関数を使う方法 itoaは「integer to ASCII」の略で、整数値を文字列に変換するC言語の関数です。以下のように使用します。 例 #include<iostream> int main() { int a = 10; char *intStr = itoa(a); string str = string(intStr); cout << str; } 出力 このコードを実行す
-
Javaで文字列配列を1つの文字列に変換・連結する方法を徹底解説
はじめに Javaプログラミングでは、複数の文字列が格納された配列を、1つの文字列に連結したい場面がよくあります。この記事では、代表的な3つの方法――StringBuffer、Arrays.toString()メソッド、そしてJava 8で導入されたStringJoinerクラス――を使った変換手順を、サンプルコードと実行結果とあわせてわかりやすく解説します。記事の最後では、より簡潔に書けるString.join()やStream APIについても紹介します。 方法1:StringBufferを使う 古くから使われる定番のアプローチです。手順は以下のとおりです。 空のStringBuff