2011-12-10 36 views

答えて

11

char c = str[1]; 

あるいは:

char c = "Hello"[1]; 

が編集: "E" を見つけるために更新。

+2

これは "E"を取得しますか? – Thanatos

+1

いいえ、私はそれを理解し、それを自分のために働かせることができます – Aspyn

+0

まあ、ナッツ、私は誤解しました。私は代わりに "O"のために行っていた。それでも答えはまだ適用されます。 –

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

Cにおける配列と文字列が0ではなく、1でインデックス作成を開始することに注意してくださいので、「H」はstr[0]あり、「E」は、最初の「L」は、そうでstr[2]であり、str[1]あります。

4

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

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

...と:strはポインタですがだから、あなたはそれがそうのような配列であるかのようにそれを使用することができます。あなたができることは、文字「str」へのポインタの値に1を加えて、文字列の2番目の文字を指し示すことです。それで簡単にできます:

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

私はこれが役に立ちそうです。

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