c++ string常见用法汇总

c++ string常见用法汇总,第1张

1. string 的初始化
#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  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/867301.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-12
下一篇 2022-05-12

发表评论

登录后才能评论

评论列表(0条)

保存