たいへん初歩的なことで恥ずかしいのですが、わからないので、質問します。
char型では、文字列の末尾には
mych[5] = '\0';
というように、'\0'をつけますが、
ユニコードライブラリを使った場合に、TCHAR型で、
文字列の末尾には、どのような文字をつけたらいいのでしょうか。
TCHAR tch[5];
tch[4] = '\0';
としても、5文字目より後に、ヘンな文字が残ってしまいます。
試しに、tch[4] = L"\0";とやってみましたが、やっぱりビルドが通りませんでした。
よろしくお願いします。
TCHAR型ってユニコードとは限らないよ。
やっぱりユニコードにするのやめたくなったときとか直ぐ変えられるように
マクロ定義で変更してコンパイルできるようにしているもの。
実際は簡単じゃないけど。
ユニコード前提ならwchar_tとかWCHARとかじゃない。
WCHAR wch[5];
wch[4] = L'\0';
TCHAR型を使うときは、TEXTマクロおよび_Tマクロを使うようにしましょう。
TCHAR tch[5];
tch[4] = TEXT('\0');
参考
http://www.ruche-home.net/program/tips/tchar.php
>5文字目より後に、ヘンな文字が残ってしまいます。
は、当然なのでは?
5文字しか管理していないので、それ以降に文字を入れるという処理が
あってはおかしいですし。
(文字列としては'\0'が出ればそれ以降に何が入っていようとそこで終わりですので。)
ありがとうございました。
解決しました。
ユニコードライブラリを使う場合は、'' が使えないと勝手に思い込んでいたお粗末でした。
たいへん失礼いたしました。
ツイート | ![]() |