J'ai deux variables: Je veux vérifier si ces deux sont égaux ... en utilisant Que dois-je utiliser et quelqu'un peut-il expliquer pourquoi utiliser Cette action serait différente dans C et C ++? P > p> Charttime == buf code> ne fonctionne pas. p> == code> ne fonctionne pas? p>
5 Réponses :
Vérifiez-les dans A pour boucle. Obtenez les numéros ASCII pour chaque caractère une fois qu'ils changent, ils ne sont pas égaux. P>
Est-ce le moyen le plus simple de le faire? Doit être quelque chose de mieux?
Il est fait référence à Johannes Schaub - Litb Post.
std::string charTime = "TIME", buf = "SOMETHINGELSE"; bool equal = (charTime == buf);
En effet, C ++ permet une surcharge de l'opérateur, qui surcharge le == code> pour effectuer une comparaison de contenu, à la place du "code" char [] code> s == code>, qui est la comparaison de référence.
N'avez-vous pas besoin de #define votre type Bool pour C aussi?
@MIM: C99 a un type bool code>. Donc, vous auriez probablement seulement besoin de le définir avec MSVC.
@MIM, comme le dit Johannes Rössel, C99 dispose d'un type code> BOOL code>. Vous devez inclure bool code> ou vous devez utiliser le type d'intégré _bool code> ( que le bool code> sera un #define code> pour) ou juste uni int code>.
in c Vous pouvez utiliser la fonction STRCMP à partir de String.h, il renvoie 0 si elles sont égales
Vous vérifiez l'identité Charntime code> et buf code>. Pour vérifier l'égalité, bouclez sur chaque caractère dans un tableau et comparez-les avec le caractère associé dans l'autre matrice. P>
dans une expression utilisant Ce dont vous avez besoin est la fonction de bibliothèque standard == code> Les noms de Char code> Tableaux décrivent dans char * code> pointant vers le début de leurs tableaux respectifs. La comparaison est ensuite effectuée en termes de valeurs des pointeurs eux-mêmes et non du contenu réel des matrices. == code> ne reviendra que TRUE pour deux pointeurs pointés vers le même emplacement et faux sinon , même s'ils montrent deux tableaux avec des contenus identiques. p> STRCMP code>. Cette expression évalue comme true si les matrices contiennent le même contenu (jusqu'à la prise NULL de terminaison qui doit être présente dans les deux tableaux FR STRCMP code> pour fonctionner en toute sécurité). P> strcmp(charTime, buf) == 0
BTW:
Char [] code> est un type incomplet.CHARTIME code> est en fait de typechar [5] code> etbuf code> est en fait de typechar [14] code>. Le compilateur compte pour nous dans ce cas pour compléter le type.