std::string 中の"\n"を改行コードに変換する関数。

文字列中の"\n"を改行コードの変換する必要があったので、STLを使って書いてみた。"\n"は2文字の¥とnであって、改行文字のリテラルではないです。

std::string YennToCR(std::string s)
{
	std::string YenN = "\\n";
	std::string CR   = "\n";

	std::string::size_type pos = s.find_first_of(YenN, 0);

	while(std::string::npos != pos){
		s.replace(pos, YenN.length(), CR);
		pos = s.find_first_of(YenN, pos);
	}

	return s;
}

テストコード

int main()
{
	std::string s;
	s = "いら\\nっしゃ\\nいませ。";

	cout << s << endl;
	cout << YennToCR(s) << endl;

	return 0;
}

出力結果

いら\nっしゃ\nいませ。
いら
っしゃ
いませ。