c++ - 如何测试字符串是否具有特定的 unicode 字符?

标签 c++ windows unicode widechar

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

命令 -o foo

如果您不知道主机使用的字符集,您如何在您的代码中测试它? 给定的控制台不可能通过 widechar 森林中的另一个字符生成相同的 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"));
   }
}

最佳答案

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

关于c++ - 如何测试字符串是否具有特定的 unicode 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2979523/

相关文章:

c++ - 定义 ostream 运算符的友元函数

ruby-on-rails - 在 Windows 10 机器上运行的应用找不到文件

c++ - int64_t 指针转换为 AVX2 intrinsic _m256i

c++ - 无法编译 HLSL Hull 着色器代码

c++ - 当屏幕分辨率高于 1920x1080 时捕获视频

python - Tornado set_secure_cookie unicode 错误

delphi - Delphi:使Unicode RAR-Component 2.0

python - 从 python 列表中提取所有可能的表情符号

c++ - 在以抽象基类为参数的函数中将指针和赋值运算符与派生类一起使用

linux - 是否可以为 Mac 和 Linux 构建 Visual Studio 应用程序?任何可用的 "extensions"