2011-12-10 12 views

Respuesta

11

Harías:

char c = str[1]; 

O incluso:

char c = "Hello"[1]; 

edición: actualizado para encontrar la "E".

+2

¿Esto tiene la "E"? – Thanatos

+1

no, pero lo entiendo y puedo hacerlo funcionar para mí – Aspyn

+0

Bueno, nueces, lo leí mal. Iba por la "O" en su lugar. Aún así, la respuesta aún se aplica. –

21
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.

4

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.

0
#include <iostream> 
#include <string> 
using namespace std; 
int main() 
    {string a="HELLO";char b=a[1]; 
    cout<<b; 
return 0;} 
Cuestiones relacionadas