2008-10-20 17 views
0

Je me demandais s'il existe une fonction native C++ (ou STL/Boost) qui va rechercher un CString pour une chaîne spécifiée?Recherche CStrings en C++

par exemple.

CString strIn = "Test number 1"; 
CString strQuery = "num"; 

bool fRet = SomeFn(strIn, StrQuery); 

if(fRet == true) 
{ 
    // Ok strQuery was found in strIn 
... 

J'ai trouvé un petit nombre de fonctions comme CompareNoCase IndexOf etc ... mais jusqu'à présent, ils ne le font pas vraiment ce que je veux qu'ils fassent (ou utiliser CLR/.Net)

Merci !

+0

Veuillez noter que 'CString' n'est pas une classe standard dans la norme C++. –

+0

Je suis vraiment stupéfait par le fait que vous n'avez pas seulement cherché les noms évidents de la fonction "find" ou "search" dans CString ou std :: string. –

Répondre

9

CString::Find() est ce que vous voulez, l'une des surcharges fait la recherche de sous-chaîne.

CString strIn = "test number 1"; 
int index = strIn.Find("num"); 
if (index != -1) 
    // ok, found 
2

Avez-vous essayé CString::Find?

Ce n'est pas STL ou boost mais puisque vous avez deux CString, il semble que ce soit la méthode la plus raisonnable à utiliser.