C++相談室 part157

レス数が900を超えています。1000を超えると表示できなくなるよ。
2021/08/09(月) 10:57:31.60ID:JaaB5Egp
前スレ
C++相談室 part156
https://mevius.5ch.net/test/read.cgi/tech/1621389313/
2021/11/12(金) 23:22:09.10ID:qmhW9zZv
>>939
C/C++の場合、1文字単位での文字列処理が得意なので、自作するのも簡単。
0x09 や 0x0a は、SJISやUtf8などの多バイト文字の中には含まれて無いから、
なおさら。
例えば、std::stringでも、新しい文字列変数dstを作って、srcの文字列
から1バイト単位で読み取って、dstに1文字ずつ末尾追加していけばいい。
2021/11/12(金) 23:28:15.13ID:qmhW9zZv
>>944
[具体例]
MFCのCStringなら、以下のようにするだけでよい:

CString src = "元の文字列";
CString dst; // 変換後の文字列を入れる変数。
const char *ptr = (const char *)src; // CString の 0 終端文字列の先頭アドレスを取得するための変換関数を呼び出している。
while ( *ptr != 0 ) {
 if ( *ptr == 0x0a ) {
  dst += "\\n";
 }
 else if ( *ptr == 0x09 ) {
  dst += "\\t";
 }
 else {
  dst += *ptr;
 }
 ptr++;
}
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況