我将<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 - 1
获取最后一个字符。
std::cout << myString.at(myString.length()-1) << std::endl;
因为字符串被索引为数组...... length() 的位置超出了界限。
你应该使用length() - 1
完整示例:cout << myString.at(myString.length() - 1);