Vergleichen Sie ein bestimmtes array-element einen string mit "if" in C?
Eher Triviale Frage.
Also habe ich versucht, dies zu tun:
if (array[0]=="some_string")
wo array
ist eine Liste von strings
array[0] = "some_string_1";
array[1] = "some_string_2";
array[2] = "some_string_3";
aber offensichtlich funktioniert es nicht...
Was muss ich tun?
- Was ist
array
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinweis:
'a'
ist einchar
und"a"
ist einstring
, so'a' != "a"
char
ist ein einzelnes Zeichen (eigentlich int), also, wenn Sie wollen, um Zeichenketten miteinander zu vergleichen, verwenden Siestrcmp
statt.in dem Beispiel, das Sie geben, Sie vergleichen ein einzelnes Zeichen (array[0]) mit der Adresse einer kompilierten string ("some_string").
Weil ein string-literal behandelt wird, als eine null-terminierte zeichenarray, und Vergleiche mit einem Zeichen-array mit dem = = - operator vergleichen der Adresse des Arrays.
Das Beispiel, das Sie Gaben, ist im wesentlichen ähnlich zu diesem:
Und Sie sehen aus diesem Beispiel, dass die Typen einfach nicht mit. Als ein weiteres Plakat erwähnt, verwenden Sie die [] - operator zu einem bestimmten Zeichen ab dem offset in den Klammern vom Anfang des Arrays.