假设您有一个接收参数的命令行可执行文件。此执行程序已准备好宽字符,您想要测试其中一个参数是否以 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/