#include
#include
string s1 = "aaaa";
string s2("bbbb");
string s3 = s2;
string s4(10, 'a');
2. string 的遍历
string s1 = "abcdefg";
//数组方式
for(int i =0; i<s1.length(); i++)
{
cout << s1[i] <<endl;
}
//迭代器
for(string::iterator it = s1.begin(); it!=s1.end(); it++)
{
cout<< *it <<endl;
}
//能在在抛出异常中使用的遍历 (抛开就是抛开异常,并进行处理,继续运行程序)
for(int i =0; i<s1.length(); i++)
{
cout << s1.at(i) <<endl;
}
3. 字符指针和string的转换
// char * ===> string
string s1 = "aaa";
// string ===> char *
printf("%s\n", s1.c_str());
// 把string中的内容copy到char *类型的buf中
char buf[128];
s1.copy(buf, 3 ,0); 从位置0开始拷贝3个到buf中
4. 字符串的连接
string s1 = "aaa";
string s2 = "bbb";
//(1)方式一
s1 = s1 + s2;
cout << s1 <<endl; //aaabbb
//( 2 ) 方式二
s1.apend(s2);
cout << s1 <<endl; //aaabbb
5. 字符串的查找和替换
#include
#include
#include "algorithm"
//(1) 查找字符串的下标
string s1 = "who hello 111";
int index = s1.find("who", 0); //0表示偏移量,从哪开始查, 失败返回 -1
cout << index <<endl;
//(2) 查找字符串出现的次数
int offindex = s1.find("who", 0);
while (offindex != string::npos) //string::npos 表示 -1
{
count ++;
cout << offindex <<endl;
offindex =offindex +1;
s1.find("who", offindex);
}
cout << count <<endl;
//( 3 ) 替换指定位置字符串
string s3 = "aaa bbb ccc";
s3.replace(0, 3, "AAA"); // 起始位置 替换个数 。。。
cout<< s3 <<endl; // AAA bbb ccc
6. 字符串的删除和替换
//(1)删除
string s1 = "hello1 hello2 hello3";
string::iterator it = find(s1.begin(), s1.end(), 'l');
if(it != s1.end())
{
s1.erase(it); // 输出 helo1 hello2 hello3
}
s1.erase(s1.begin(), s1.end()); // 全部删除 区域删除
//(2)插入
string s2 = "bbb";
s2.insert(0, "AAA"); //输出 AAAbbb
s2.insert(s2.length(), "ccc"); //输出 AAAbbbccc
7. 字符串转大写和转小写
函数原型
transform(...,...,...,...,...);
第1, 2个参数表示转换范围,3个参数表示转换后存储的位置,第4参数表示转换方法
string s1 = "AAAbbb";
transform(s1.begin(), s1.end(), s1.begin(), toupper);//转大写
//输出AAABBB
string s2 = "AAAbbb";
transform(s1.begin(), s1.end(), s1.begin(), tolower);//转小写
//输出aaabbb
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)