tengo una cadena,¿Cómo puedo obtener el enésimo carácter de una cadena?
char* str = "HELLO"
Si quería obtener sólo el E
de esa forma iba a hacer eso?
tengo una cadena,¿Cómo puedo obtener el enésimo carácter de una cadena?
char* str = "HELLO"
Si quería obtener sólo el E
de esa forma iba a hacer eso?
Harías:
char c = str[1];
O incluso:
char c = "Hello"[1];
edición: actualizado para encontrar la "E".
char* str = "HELLO";
char c = str[1];
Tenga en cuenta que las matrices y cadenas en C comienzan indexación a 0 en lugar de 1, por lo que "H" es str[0]
, "E" es str[1]
, el primer "L" es str[2]
y así sucesivamente.
La notación de matriz y la aritmética de puntero se pueden usar indistintamente en C/C++ (esto no es cierto para TODOS los casos, pero para cuando llegue allí, encontrará los casos). Así que, aunque str
es un puntero, se puede utilizar como si fuera un array de este modo:
char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];
... y así sucesivamente. Lo que también podría hacer es "agregar" 1 al valor del puntero a un carácter str
que luego apuntará al segundo carácter de la cadena. A continuación, puede hacer simplemente:
str = str + 1; // makes it point to 'E' now
char myChar = *str;
Espero que esto ayude.
#include <iostream>
#include <string>
using namespace std;
int main()
{string a="HELLO";char b=a[1];
cout<<b;
return 0;}
¿Esto tiene la "E"? – Thanatos
no, pero lo entiendo y puedo hacerlo funcionar para mí – Aspyn
Bueno, nueces, lo leí mal. Iba por la "O" en su lugar. Aún así, la respuesta aún se aplica. –