如何测试字符串是否具有某个unicode char?

时间:2010-06-05 07:19:26

标签: c++ windows unicode widechar

假设你有一个接收参数的命令行可执行文件。这个executalbe已经准备好了widechar,你想测试其中一个参数是否以HYPHEN情况开始,其中有一个选项:

命令-o foo

如果您不知道主机使用的字符集,您如何在代码中测试它? 应该是不可能在给定的控制台上由widechar森林中的另一个char生成相同的HYPHEN表示? (在这种情况下,它将是一个狂野的焦点: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"));
   }
}

1 个答案:

答案 0 :(得分:2)

在您的情况下,Windows将命令行作为UTF-16字符串提供,因此您不必担心字符集。只需检查(inputFile->c_str()[0] == L'-')即可。当然,UTF-16是一个可变长度编码,但连字符由一个宽字符值表示。