begin(); return 0; } 输出: H 此示例显示如何使用 begin() 函数获取字符串的第一个字符。 例子2 让我们看看另一个例子。 #include<iostream> using namespace std; int main() { string str ="B language"; *str.begin()='C'; cout<<str; return 0; } 输出: C language 此示例显示如何使用...
filename.end(),'.');if(dot == filename.end())returnfilename;// Put the translated font filename string back together.Common::Stringresult(filename.begin(), dot);
如果是const修饰的,就不能修改,只能读。 迭代器iterator(begin、end) 迭代器iterator是一个类型,是定义在string类里面的,需要指定类域才能用。end()是最后一个有效字符的下一个位置,即‘\0’。begin()是起始位置。他模拟指针的行为,但他不是指针,因此他也可读可写。 反向迭代器(rbegin、rend) 当我们的对象是...
1.begin()和end() 首先我们要先介绍两个特殊的迭代器:begin()和end() 在这个位置处,我们可以暂时把iterator迭代器当做指针去使用,因此我们就可以这样去遍历访问元素了 同样的,这个迭代器也可以用来改变这个string具体位置的元素的值 2.rbegin()和rend() 迭代器也可以倒着遍历,就像这样: 可能这个英文解释不是很好...
string s="hello world";cout<<s.c_str()<<endl;// "hello world" 1. 2. 这样看起来,c_str有点多此一举了,明明可以直接输出,不用c_str效果也是一致的。 其实不然,通过c_str还是和直接输出有差别的。 c_str的返回值是一个字符串,而<<对于字符串的输出机制是遇到'\0'中止输出。而string类重载的...
string(size_t n, char c)string类对象中包含n个字符c Plain Text 复制代码 9 1 2 3 4 5 6 7 void Teststring(){ string s1; // 构造空的string类对象s1 string s2("hello bit"); // 用C格式字符串构造string类对象s2 string s3(s2); // 拷贝构造s3 string(100, 'x'); //s...
for(string::iterator it = s.begin(); it != s.end(); it++) { cout << *it; } //逆向迭代器 for (string::iterator it = s.rbegin(); it != s.rend(); it++) { cout << *it; } //采用auto实现迭代器 for(auto itr : s) ...
可以把迭代器理解成指针,begin是开始的指针,end是指向\0的指针,注意是左闭右开!! 如果是用const类型的迭代器,就不能修改 至此我们知道了三种可以访问的字符串的方法: 1、下标遍历 2、迭代器遍历 3、范围for 3、rbegin+rend 跟上面差不多,只不过是从尾开始访问 ...
string类对象和C风格的字符数组最大的区别就是,字符数组的长度必须指定或定义时由初始化确定,而string类对象的字符串长度时可以动态改变,不限制长度的。而且,因为是类对象,所以可以用很多类成员函数,也可以自己扩展可用的类成员函数。 函数名 描述 begin ——得到指向字符串开头的Iterator ...
string::iterator p =find(s.begin(), s.end(),'c');if(p!= s.end()) cout << p - s.begin() << endl;//输出3 相当于c的指针-头指针sort(s.begin(), s.end());//字符串排序cout << s << endl;//输出 13abcdefg//其余STL操作就不演示了,基本上都是支持的return0; ...