如何获取字符串的第n个字符?

我有一个字符串,

char* str = "HELLO" 

如果我想从中获得E ,我该怎么做?

 char* str = "HELLO"; char c = str[1]; 

请记住,C中的数组和字符串开始索引为0而不是1,因此“H”是str[0] ,“E”是str[1] ,第一个“L”是str[2] ,依此类推。

你会这样做:

 char c = str[1]; 

甚至:

 char c = "Hello"[1]; 

编辑:更新以找到“E”。

数组符号和指针算法可以在C / C ++中互换使用(对于所有情况都不是这样,但是当你到达那里时,你会自己找到这些案例)。 因此虽然str是一个指针,但你可以像使用它一样使用它:

 char char_E = str[1]; char char_L1 = str[2]; char char_O = str[4]; 

…等等。 您还可以做的是将“1”添加到指向字符str的指针的值,然后指向字符串中的第二个字符。 然后你可以简单地做:

 str = str + 1; // makes it point to 'E' now char myChar = *str; 

我希望这有帮助。

 #include  #include  using namespace std; int main () {string a="HELLO";char b=a[1]; cout<