文字列に特定のUnicode Charがあるかどうかをテストする方法は?
質問
あなたは引数を受け取るコマンドライン実行可能ファイルを持っています。このexecutalbeはWidecharの準備ができているため、この引数の1つがハイフンケースで始まるかどうかをテストしたいと思います。
コマンド-o foo
ホストが使用しているチャーセットがわからない場合、コード内でテストするにはどうすればよいですか?特定のコンソールでは、ワイダイチャーフォレストの別のcharによって同じハイフン表現を生成するために不可能であるべきではありませんか? (そのような場合、それはワイルドチャー:Pになります)
int _tmain(int argc, _TCHAR* argv[])
{
std::wstring inputFile(argv[1]);
if(inputFile->c_str() <is an HYPHEN>)
{
_tprintf(_T("First argument cannot be an option"));
}
}
解決
あなたの場合、WindowsはUTF-16文字列としてコマンドラインを配信するため、文字セットについて心配する必要はありません。確認するだけです (inputFile->c_str()[0] == L'-')
そして、あなたは行くのが良いはずです。もちろん、UTF-16は可変長さのエンコードですが、ハイフン文字は単一の幅広い値で表されます。
所属していません StackOverflow