Come verificare se una stringa ha un certo carattere unicode?
Domanda
supose si dispone di un file eseguibile a riga di comando che riceve argomenti. Questo è executalbe widechar pronto e si desidera verificare se uno di questi argomenti inizia con un caso in cui il suo HYPHEN un'opzione:
comando -o pippo
come hai potuto testarlo all'interno del vostro codice, se non si conosce il charset stato utilizzato dal conduttore? Dovrebbe essere non è possibile una determinata console per produrre la stessa rappresentazione HYPHEN da un altro char nella foresta widechar? (In tal caso sarebbe un carattere selvaggio: 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"));
}
}
Soluzione
Nel tuo caso, Windows consegnerà la linea di comando come stringa UTF-16, quindi non dovreste aver bisogno di preoccuparsi set di caratteri. Basta controllare (inputFile->c_str()[0] == L'-')
e si dovrebbe essere pronti per partire. Naturalmente UTF-16 è una codifica a lunghezza variabile, ma il trattino è rappresentato da un valore singolo livello char.