Comparer une matrice spécifique de l'élément d'une chaîne de caractères avec des “si” en C?
Plutôt Question Triviale.
J'ai essayé de faire ceci:
if (array[0]=="some_string")
où array
est une liste de chaînes
array[0] = "some_string_1";
array[1] = "some_string_2";
array[2] = "some_string_3";
mais évidemment ça ne fonctionne pas...
Que dois-je faire?
Vous devez vous connecter pour publier un commentaire.
Remarque:
'a'
est unchar
et"a"
est unstring
, donc'a' != "a"
char
est un caractère unique (en fait, int), donc si vous voulez comparer des chaînes de caractères, utilisezstrcmp
à la place.dans l'exemple que vous donnez, vous comparez un seul caractère (tableau[0]) avec l'adresse d'un compilés chaîne de caractères ("chaîne_quelconque").
Parce qu'un littéral de chaîne est traitée comme un null tableau de caractères, et les comparaisons par rapport à un tableau de caractères avec l'opérateur == comparer l'adresse de la table.
L'exemple que vous avez donné est essentiellement similaire à ceci:
Et vous pouvez le voir sur cet exemple que les types n'ont tout simplement pas de match. Comme une autre affiche a déclaré, vous devez utiliser l'opérateur [] à obtenir un caractère spécifique à partir de l'offset dans les crochets à partir du début du tableau.