初学acmer--C++泛型库(二)string

1.赋值

#include<string>
#include<iostream>
using namespace std;
int main() 
{
string s;
char ss[100];
s="hello,C++STl";
cout<<s<<endl;
scanf("%s",ss);//scanf的输入速度比cin要快得多但是它是c语言的函数,不支持sring对象;另外,ss前面加不加&无所谓 
s=ss;
cout<<s<<endl;
return 0; 
}


2.追加

#include<string>
#include<iostream>
using namespace std;
int main() {
string s;
s="1234";
cout<<s<<endl;
s+="a";
cout<<s<<endl;
s+="56";
cout<<s<<endl;
s.append("bc");
    cout<<s<<endl;
    return 0;
}

3.插入

#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="12345";
s.insert(s.begin()+1,'a');
cout<<s<<endl;
string::iterator it;
it=s.begin();
s.insert(it+1,'b');
cout<<s<<endl;
return 0;
}

4.删除

#include<string>
#include<iostream>
using namespace std;
int main() 
{
string s;
s="abc123456";
string::iterator it;
it=s.begin();
s.erase(it+3);
cout<<s<<endl;
s.erase(it,it+4);
cout<<s<<endl;
s.clear();
cout<<s.length()<<endl;
return 0;
}

5.替换

#include<string>
#include<iostream>
using namespace std;
int main() 
{
string s;
s="abc123456";
s.replace(3,3,"good");//从第三个开始(即前三个不变),将连续的3个字符替换为"good" ,所被替换的字符数不必和要替换的字符数相等
cout<<s<<endl;
s.replace(2,1,"very");//从第二个开始(即前两个不变),将连续的1个字符替换为"very",所被替换的字符数不必和要替换的字符数相等
cout<<s<<endl;
return 0;
}

6.查找

#include<string>
#include<iostream>
using namespace std;
int main() 
{
string s;
s="cat dog cat";
cout<<s.find('c')<<endl;//找到的话就返回下标值 
cout<<s.find("c")<<endl;
cout<<s.find("cat")<<endl;
cout<<s.find("dog")<<endl;
cout<<s.find("dogc")<<endl;//没找到的话就返回4294967295 
return 0;
}

7.比较

#include<string>
#include<iostream>
using namespace std;
int main()
{
string s;
s="cat dog cat";
cout<<s.compare("cat")<<endl;//compare()函数是按字典序比较大小的 ,若s比compare()中大,返回大的位数 (8)
cout<<s.compare("cat dog")<<endl;//若s比compare()中大,返回大的位数(4)
cout<<s.compare("cat doa")<<endl;//返回1(非零值) 
cout<<s.compare("cat dog cat")<<endl;
cout<<s.compare("dog")<<endl;
cout<<(s>"cat dog")<<endl;//亦可以直接用<和>来比较! 
return 0;

8.倒置

#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
string s;
s="123456789";
reverse(s.begin(),s.end());
cout<<s<<endl;
reverse(s.begin()+2,s.end()-1);
cout<<s<<endl;
return 0;
}

9.string类型的向量

#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
int main() 
{
vector<string> v;
v.push_back("Jack");
v.push_back("Mike");
v.push_back("Tom");
cout<<v[0]<<endl;
cout<<v[1]<<endl;
cout<<v[2] <<endl;
cout<<v[0][0]<<endl;
cout<<v[1][0]<<endl;
cout<<v[2].length()<<endl;
return 0;
}

10.sscanf函数和sprintf函数

#include<string>
#include<iostream>
using namespace std;
int main() 
{
char b[10];
string a;
sprintf(b,"%d",1975);//sprinf函数注重前面,故而是将后面的输入到前面的 
a=b;
cout<<a<<endl<<a.length()<<endl;
sscanf("1997","%s",b);//sscanf函数注重后面,故而是将前面的输入到后面的 
a=b;
cout<<a<<endl<<a.length()<<endl;
return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值