开发者

How to test if a string has a certain unicode char?

开发者 https://www.devze.com 2023-01-02 22:02 出处:网络
Supose you have a command line executable that receives arguments. This exec开发者_如何学JAVAutalbe is widechar ready and you want to test if one of this arguments starts with an HYPHEN case in which

Supose you have a command line executable that receives arguments. This exec开发者_如何学JAVAutalbe is widechar ready and you want to test if one of this arguments starts with an HYPHEN case in which its an option:

command -o foo

how you could test it inside your code if you don't know the charset been used by the host? Should be not possible to a given console to produce the same HYPHEN representation by another char in the widechar forest? (in such case it would be a wild char :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"));
   }
}


In your case, Windows will deliver the command line as a UTF-16 string so you shouldn't need to worry about character sets. Just check (inputFile->c_str()[0] == L'-') and you should be good to go. Of course UTF-16 is a variable-length encoding but the hyphen character is represented by a single wide-char value.

0

精彩评论

暂无评论...
验证码 换一张
取 消