<string>
ライブラリを .cpp ファイルの先頭に含めていますが、テストすると
cout<<myString.at(myString.length());
文字列の最後の文字を出力する必要があります。少なくとも、そうすべきだと思います。しかし、私のコンパイラはヒッシーフィットをスローし、私にたくさんの専門用語を吐き出します.
私は JavaScript での記述に慣れているため、ルールを使用することに慣れていないため、文字列の最後の文字を返すことは完全に理にかなっています。
文字列インデックスはゼロから始まるため、[0..myString.length()-1] を実行します。使用する必要があります
myString.at(myString.length()-1);
最後の文字を取得するには
そのはず
cout <<myString.at(myString.length()-1 );
文字列インデックスは 0 ベースであるため、文字列 "hello" は 0 から 4 までのインデックスと長さ 5 を持ちます。
#include <string>
#include <iostream>
using namespace std;
int main(){
string myString = "hello";
cout << myString.at(myString.length()-1 ); //outputs "o"
}
名前空間を含めましたstd
か?
また、ゼロベースのインデックス作成を考慮して、長さよりも 1 少なくする必要があります
std::cout<<myString.at(myString.length()-1);
文字列は配列としてインデックス付けされているため... length() の位置が範囲外です。
使用する必要がありますlength() - 1
完全な例:cout << myString.at(myString.length() - 1);