2011-08-10 5 views
2

J'ai besoin de voir si mon string correspond à "bonjour X" où X est int."bonjour x" - chaîne comparer

Fondamentalement, je veux attraper si son "bonjour 1" ou "bonjour 100".

Comment puis-je le faire?

Modifier 0

Merci Andrea Bergia.

J'utilise votre code comme ceci:

int dummy; 
if (sscanf(string, "hello %d", &dummy)) 
    /* matched */ 

Répondre

8
int dummy; 
int n = sscanf(string, "hello %d", &dummy); 
if (n == 1) { 
    // Matched 
} 
+0

Merci beaucoup. Est-ce que 'scanf' est une opération coûteuse si je dois le faire plusieurs fois? Je suppose, il serait plus difficile que n'importe quelle fonction de comparaison de chaînes, correct? – hari

+1

Si vous êtes préoccupé par les performances, utilisez un profileur et mesurez! – Frank

+1

C'est probablement assez bon. Mais, croyez-le ou non, si l'entier correspondant est en dehors de la plage 'INT_MIN'..'INT_MAX', le comportement du code est indéfini. (En pratique, je suppose qu'il se comporte raisonnablement bien dans toutes les implémentations existantes.) –