web-dev-qa-db-ja.com

文字列のn番目の文字を取得するにはどうすればよいですか?

文字列があります

char* str = "HELLO"

それからEだけを取得したい場合はどうすればよいですか?

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

Cの配列と文字列は、1ではなく0でインデックス付けを開始するため、「H」はstr[0]、「E」はstr[1]、最初の「L」はstr[2] 等々。

23
Rei Miyasaka

あなたがするだろう:

char c = str[1];

あるいは:

char c = "Hello"[1];

編集:「E」を見つけるために更新されました。

13
Graham Perks

配列表記とポインター演算は、C/C++で同じ意味で使用できます(これはすべてのケースに当てはまるわけではありませんが、そこにたどり着くまでに、自分でケースを見つけるでしょう)。 strはポインターですが、次のような配列であるかのように使用できます。

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

...等々。また、文字strを指すポインターの値に1を追加して、文字列の2番目の文字を指すようにすることもできます。それからあなたは単にすることができます:

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

これがお役に立てば幸いです。

4
mtahmed