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

C++ 如何测试字符串是否具有特定的unicode字符?,c++,windows,unicode,widechar,C++,Windows,Unicode,Widechar,假设您有一个接收参数的命令行可执行文件。此executalbe已准备好widechar,您需要测试其中一个参数是否以连字符开头,在这种情况下,它是一个选项: 命令-o foo 如果不知道主机使用的字符集,如何在代码中测试它? 对于给定控制台,widechar林中的另一个字符是否不可能生成相同的连字符表示?(在这种情况下,它将是一个野生字符:P) int-tmain(int-argc,_-TCHAR*argv[] { std::wstring输入文件(argv[1]); 如果(输入文件->c_st

假设您有一个接收参数的命令行可执行文件。此executalbe已准备好widechar,您需要测试其中一个参数是否以连字符开头,在这种情况下,它是一个选项:

命令-o foo

如果不知道主机使用的字符集,如何在代码中测试它? 对于给定控制台,widechar林中的另一个字符是否不可能生成相同的连字符表示?(在这种情况下,它将是一个野生字符:P)

int-tmain(int-argc,_-TCHAR*argv[]
{
std::wstring输入文件(argv[1]);
如果(输入文件->c_str())
{
_tprintf(_T(“第一个参数不能是选项”));
}
}

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

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"));
   }
}