、私はちょうどそれからE
を取得したい場合は文字列のn番目の文字を取得するにはどうすればよいですか?私は、文字列を持っている
char* str = "HELLO"
私はそれをどのように行うのでしょうか?
あなたはどうなる、私はちょうどそれからE
を取得したい場合は文字列のn番目の文字を取得するにはどうすればよいですか?私は、文字列を持っている
char* str = "HELLO"
私はそれをどのように行うのでしょうか?
あなたはどうなる:
char c = str[1];
あるいは:
char c = "Hello"[1];
が編集: "E" を見つけるために更新。
char* str = "HELLO";
char c = str[1];
Cにおける配列と文字列が0ではなく、1でインデックス作成を開始することに注意してくださいので、「H」はstr[0]
あり、「E」は、最初の「L」は、そうでstr[2]
であり、str[1]
あります。
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;
私はこれが役に立ちそうです。
#include <iostream>
#include <string>
using namespace std;
int main()
{string a="HELLO";char b=a[1];
cout<<b;
return 0;}
これは "E"を取得しますか? – Thanatos
いいえ、私はそれを理解し、それを自分のために働かせることができます – Aspyn
まあ、ナッツ、私は誤解しました。私は代わりに "O"のために行っていた。それでも答えはまだ適用されます。 –