2011-01-04 6 views
1

Si j'ai deux données de caractères, quel est le meilleur moyen de les comparer (tester l'égalité avec ==)? C'est, quel type est le meilleur pour cette comparaison? Un const char *, une chaîne?Comparaison de chaînes C++

Merci beaucoup

Répondre

15

Si votre objectif est simplement de comparer les chaînes pour l'égalité, alors il n'a pas vraiment si vous utilisez des chaînes à zéro terminal ou un certain conteneur de chaîne comme std::string.

Vous pouvez utiliser std::strcmp pour comparer deux chaînes à zéro terminal tout aussi facilement que vous pouvez utiliser operator== pour comparer deux objets std::string. L'opérateur surchargé rend le code plus propre et plus facile à lire dans la plupart des cas.

Bien sûr, puisque vous programmez en C++, vous devriez utiliser std::string ou un autre conteneur de chaînes et ne pas manipuler des données brutes à zéro terminal, dans la mesure du possible.

+2

+1 pour la dernière phrase, en particulier pour "autant que possible". –