如何测试字符串是否具有某个Unicode字符?
题
SUPOSE您的命令行可执行,可以接收参数。此opecutalbe已准备就绪,您要测试此参数之一是否从连字符案例开始,其中一个选择:
命令-o foo
如果您不知道主机使用的Charset,则如何在代码中测试它?在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"));
}
}
解决方案
在您的情况下,Windows将作为UTF-16字符串提供命令行,因此您不必担心字符集。只是检查 (inputFile->c_str()[0] == L'-')
而且你应该很好。当然,UTF-16是一个可变长度编码,但是连字符字符由单个宽字节值表示。
不隶属于 StackOverflow