C++ string获取字符串元素:[]和at()
发布时间:2020-12-16 07:37:58 所属栏目:百科 来源:网络整理
导读:在通常情况下,string 是 C++ 中的字符串。字符串是一种特殊类型的容器,专门用来操作字符序列。 字符串中元素的访问是允许的,一般可使用两种方法访问字符串中的单一字符: 下标操作符[] 和 成员函数at() 。 两者均返回指定的下标位置的字符。第 1 个字符索
在通常情况下,string 是 C++ 中的字符串。字符串是一种特殊类型的容器,专门用来操作字符序列。 字符串中元素的访问是允许的,一般可使用两种方法访问字符串中的单一字符:下标操作符[] 和 成员函数at()。两者均返回指定的下标位置的字符。第 1 个字符索引(下标)为 0,最后的字符索引为 length()-1。 需要注意的是,这两种访问方法是有区别的:
【例 1】 #include <iostream> #include <string> int main() { const std::string cS ("c.biancheng.net"); std::string s ("abode"); char temp =0; char temp_1 = 0; char temp_2 = 0; char temp_3 = 0; char temp_4 = 0; char temp_5 = 0; temp = s [2]; //"获取字符 'c' temp_1 = s.at(2); //获取字符 'c' temp_2 = s [s.length()]; //未定义行为,返回字符' ',但Visual C++ 2012执行时未报错 temp_3 = cS[cS.length()]; //指向字符 ' ' temp_4 = s.at (s.length ()); //程序异常 temp_5 = cS.at(cS.length ()); //程序异常 std::cout << temp <<temp_1 << temp_2 << temp_3 << temp_4 << temp_5 << std::endl; return 0; }通过对上述代码的分析可知,要理解字符串的存取需要多实践、多尝试,并且要牢记基础知识和基本规则。 为修改 string 字符串的内容,下标操作符 [] 和函数 at() 均返回字符的“引用”。但当字符串的内存被重新分配以后,可能会发生执行错误。 【例 2】 #include <iostream> #include <string> int main() { std::string s ("abode"); std::cout << s << std::endl ; char& r = s[2] ; //建立引用关系 char*p=&s[3]; //建立引用关系 r='X' ;//修改内容 *p='Y' ;//修改内容 std::cout << s << std::endl; //输出 s = "12345678"; //重新赋值 r ='X'; //修改内容 *p='Y'; //修改内容 std::cout << s << std::endl; //输出 return 0; }程序输出结果为:
abode (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |