Ho una stringa,Come posso ottenere l'ennesimo carattere di una stringa?
char* str = "HELLO"
Se volessi ottenere solo il E
da quella come avrei fatto?
Ho una stringa,Come posso ottenere l'ennesimo carattere di una stringa?
char* str = "HELLO"
Se volessi ottenere solo il E
da quella come avrei fatto?
Fareste:
char c = str[1];
O anche:
char c = "Hello"[1];
edit: aggiornato per trovare la "E".
char* str = "HELLO";
char c = str[1];
tenere presente che gli array e stringhe in C iniziano indicizzazione a 0 anziché 1, so "H" è str[0]
, "E" è str[1]
, il primo "L" è str[2]
e così via.
La notazione delle matrici e l'aritmetica dei puntatori possono essere utilizzate in modo intercambiabile in C/C++ (questo non è vero per TUTTI i casi ma dal momento in cui ci si arriva, si troveranno i casi da soli). Quindi, anche se str
è un puntatore, è possibile utilizzarlo come se fosse un array in questo modo:
char char_E = str[1];
char char_L1 = str[2];
char char_O = str[4];
... e così via. Quello che potresti fare è "aggiungere" 1 al valore del puntatore a un carattere str
che poi indicherà il secondo carattere nella stringa. Quindi puoi semplicemente fare:
str = str + 1; // makes it point to 'E' now
char myChar = *str;
Spero che questo aiuti.
#include <iostream>
#include <string>
using namespace std;
int main()
{string a="HELLO";char b=a[1];
cout<<b;
return 0;}
Questo ottiene la "E"? – Thanatos
no, ma lo capisco e posso farlo funzionare da solo – Aspyn
Beh, matto, ho letto male. Invece stavo andando per la "O". Ancora la risposta si applica ancora. –