J'ai une chaîne,
char* str = "HELLO"
Si je voulais obtenir juste le E
de cela, comment ferais-je cela?
char* str = "HELLO";
char c = str[1];
Gardez à l'esprit que les tableaux et les chaînes en C commencent l'indexation à 0 plutôt qu'à 1, donc "H" est str[0]
, "E" est str[1]
, le premier "L" est str[2]
etc.
Vous feriez:
char c = str[1];
Ou même:
char c = "Hello"[1];
edit: mis à jour pour trouver le "E".
La notation matricielle et l'arithmétique des pointeurs peuvent être utilisées de manière interchangeable en C/C++ (ce n'est pas vrai pour TOUS les cas mais au moment où vous y arrivez, vous trouverez les cas vous-même). Ainsi, bien que str
soit un pointeur, vous pouvez l'utiliser comme s'il s'agissait d'un tableau comme ceci:
char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];
...etc. Vous pouvez également "ajouter" 1 à la valeur du pointeur à un caractère str
qui pointera ensuite vers le deuxième caractère de la chaîne. Ensuite, vous pouvez simplement faire:
str = str + 1; // makes it point to 'E' now
char myChar = *str;
J'espère que ça aide.