1. string类的operator[]/at/back/front
1.1 std::string::operator[]
- 原型: const char& operator[](size_t n) const;
- 功能: 返回源字符串下标为n处的字符的引用。
- 说明: 不能被修改。
- 原型:char& operator[](size_t n);
- 功能: 返回源字符串下标为n处的字符的引用。
- 说明: 可以被修改。
代码示例:
#include <iostream> #include <string> using namespace std; int main () { const string str1("Test string");//const char &operator[](size_t n) const; for (unsigned i=0; i<str1.length(); i++) { //str1[i]='a'; cout<<str1[i]; } cout<<endl; string str2("Test string");//char &operator[](size_t n); for (unsigned i=0; i<str2.length(); i++) { str2[i]='a'; cout<<str2[i]; } cout<<endl; system("pause"); return 0; } =>Test string aaaaaaaaaaa
1.2 std::string::at
- 原型: const char& at (size_t pos) const;
- 功能: 返回源字符串下标为n处的字符的引用。
- 说明: 不能被修改。
- 原型:char& at (size_t pos);
- 功能: 返回源字符串下标为n处的字符的引用。
- 说明: 可以被修改。
代码示例:
#include <iostream> #include <string> using namespace std; int main () { const string str1("Test string");//const char &operator[](size_t n) const; for (unsigned i=0; i<str1.length(); i++) { //str1.at(i)='a'; cout<<str1.at(i); } cout<<endl; string str2("Test string");//char &operator[](size_t n); for (unsigned i=0; i<str2.length(); i++) { str2.at(i)='a'; cout<<str2.at(i); } cout<<endl; system("pause"); return 0; } =>Test string aaaaaaaaaaa
1.3 std::string::back
- 原型: const char& back() const;
- 功能: 返回源字符串最后一个字符的引用。
- 说明: 不能被修改。
- 原型:char& back();
- 功能: 返回源字符串最后一个字符的引用。
- 说明: 可以被修改。
代码示例:
#include <iostream> #include <string> using namespace std; int main() { string str ("hello world"); //const char& c1 = str.back(); //c1 = '!'; char& c2 = str.back(); c2 = '!'; cout<<str<<endl; system("pause"); return 0; } =>hello world!
1.4 std::string::front
- 原型: const char& front() const;
- 功能: 返回源字符串第一个字符的引用。
- 说明: 不能被修改。
- 原型:char& front();
- 功能: 返回源字符串第一个字符的引用。
- 说明: 可以被修改。
代码示例:
#include <iostream> #include <string> using namespace std; int main() { string str ("hello world"); //const char& c1 = str.front(); //c1 = '!'; char& c2 = str.front(); c2 = 'H'; cout<<str<<endl; system("pause"); return 0; } =>Hello world
参考文献:
[1] 网络资源: http://www.cplusplus.com/reference/string/string/operator[]/
http://www.cplusplus.com/reference/string/string/at/
http://www.cplusplus.com/reference/string/string/back/
http://www.cplusplus.com/reference/string/string/front/