【问题标题】:How to test if a string has a certain unicode char?如何测试字符串是否具有特定的 unicode char?
【发布时间】:2011-02-28 02:26:15
【问题描述】:

假设您有一个接收参数的命令行可执行文件。此执行程序已准备好宽字符,您想测试其中一个参数是否以连字符开头,其中它是一个选项:

命令 -o foo

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

【问题讨论】:

    标签: c++ windows unicode widechar


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-09-19
      • 1970-01-01
      • 2018-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      相关资源
      最近更新 更多