07/09/18 02:58:03
URLリンク(always-pg.com)
こちらの「文字列の文字数を求める」サンプルプログラムですが、
"Cプログラム" の長さは 6 が返るはずなんですが 11 が返ります。
なぜでしょうか? 環境は、linuxで gcc 3.3.6 です。
948:デフォルトの名無しさん
07/09/18 03:01:06
全角は2文字
949:デフォルトの名無しさん
07/09/18 03:26:23
ちょっと語弊を招きかねない回答だなw
全角文字は2バイトなのでC標準のstrlenのようにバイト数を返す関数を使用した場合、文字数が得られるとは限らない。
ちゃんとロケールを設定すれば6になるはずだが?一字一句間違えずにコピペした?
950:デフォルトの名無しさん
07/09/18 03:31:49
>>949
ダウンロードして展開した wcslen.c というファイルを euc-jp-unix にしてから
そのままコンパイルして実行してます。
951:デフォルトの名無しさん
07/09/18 03:58:59
>>947-950
試してみたが、VC++では 6 が返ってきた。
cygwin gcc 3.4.4 ではコンパイルできなかった。
L"Cプログラム"; の L でパースエラー。
952:デフォルトの名無しさん
07/09/18 04:14:27
え?ってかCなの?C++じゃなくて?
C標準に2バイト文字なんて概念あったっけ?
953:デフォルトの名無しさん
07/09/18 04:22:59
wchat_t
954:デフォルトの名無しさん
07/09/18 07:52:09
質問させてくださりませ。
void parse_long_options (int _argc,
char **_argv,
const char *_command_name,
...);
の中の"..."の点三つはどういう意味なのでしょうか?
ご教授宜しくお願い致します。
955:デフォルトの名無しさん
07/09/18 08:01:23
>>954
教授じゃなくて教示な
URLリンク(www.geocities.jp)
956:デフォルトの名無しさん
07/09/18 08:30:14
引数の数が可変であるってこと。