为什么myString.at(myString.length())不起作用?

gr3*_*bo1 0 c++ string

我将<string>库包含在我的.cpp文件的顶部,但是当我测试它时

 cout<<myString.at(myString.length());
Run Code Online (Sandbox Code Playgroud)

它应该打印出字符串的最后一个字母,或者至少我认为它应该打印出来.但是我的编译器抛出一个怪异的东西,并向我吐出一堆行话.

我习惯用JavaScript写作,所以我不习惯,好吧....有规则,所以对我来说这很有必要返回字符串的最后一个字符.

sim*_*onc 7

字符串索引从零开始,因此运行[0..myString.length() - 1].你应该用

myString.at(myString.length()-1);
Run Code Online (Sandbox Code Playgroud)

得到最后一个角色

  • 很高兴它有所帮助.请注意,C字符串(一个`char`数组)在末尾有一个''\ 0'`但C++`std :: string`却没有. (4认同)