TCHAR型文字列での終末文字は?

解決


ウルトラハイパー初心者  2007-09-04 07:51:18  No: 66192  IP: 192.*.*.*

たいへん初歩的なことで恥ずかしいのですが、わからないので、質問します。

char型では、文字列の末尾には
mych[5] = '\0';
というように、'\0'をつけますが、
ユニコードライブラリを使った場合に、TCHAR型で、
文字列の末尾には、どのような文字をつけたらいいのでしょうか。

TCHAR tch[5];
tch[4] = '\0';

としても、5文字目より後に、ヘンな文字が残ってしまいます。
試しに、tch[4] = L"\0";とやってみましたが、やっぱりビルドが通りませんでした。


よろしくお願いします。

編集 削除
wclrp ( 'o')  2007-09-04 08:23:58  No: 66193  IP: 192.*.*.*

TCHAR型ってユニコードとは限らないよ。
やっぱりユニコードにするのやめたくなったときとか直ぐ変えられるように
マクロ定義で変更してコンパイルできるようにしているもの。
実際は簡単じゃないけど。

ユニコード前提ならwchar_tとかWCHARとかじゃない。
WCHAR wch[5];
wch[4] = L'\0';

編集 削除
Blue  2007-09-04 08:33:29  No: 66194  IP: 192.*.*.*

TCHAR型を使うときは、TEXTマクロおよび_Tマクロを使うようにしましょう。

TCHAR tch[5];
tch[4] = TEXT('\0');

参考
http://www.ruche-home.net/program/tips/tchar.php

>5文字目より後に、ヘンな文字が残ってしまいます。
は、当然なのでは?
5文字しか管理していないので、それ以降に文字を入れるという処理が
あってはおかしいですし。
(文字列としては'\0'が出ればそれ以降に何が入っていようとそこで終わりですので。)

編集 削除
ウルトラハイパー初心者  2007-09-05 09:46:42  No: 66195  IP: 192.*.*.*

ありがとうございました。

解決しました。

ユニコードライブラリを使う場合は、'' が使えないと勝手に思い込んでいたお粗末でした。

たいへん失礼いたしました。

編集 削除