STL-string

 

#include "stdafx.h"
#include<iostream>
#include<string>
#include<vector>//vector向量容器
using namespace std;

/******************************************************************/
/*http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html*/
int main(int argc, char* argv[])
{
/************************************** 1 ***************************************************/
/*1、c语言中字符串 ,并不是真正意义上的字符串*/
char name[20] = "你好!";
char *name2 = "你好!";

/*************************************** 2 **************************************************/
/* 2、创建字符串并赋值*/
//2.1、直接给字符串赋值
string s ="hello world";
//2.2 、将字符指针赋给字符串
char ss[10];
cin>>ss;
string s1 = ss;
cout<<s1<<endl;

/****************************************** 3 ***********************************************/
/*3、string 尾部添加字符*/
//3.1、使用+
s+='a';
s+="hi!";
//3.2、使用append
s.append("使用append方法!");
cout<<s<<endl;


/****************************************** 4 ***********************************************/
/*4、给string对象插入字符*/
//定义迭代器
string::iterator it;
it = s.begin();
//将‘p’插入第二个位置前
s.insert(it+2,'p');

/****************************************** 5 ***********************************************/
//访问string对象的元素,使用下标方式访问
cout<<"采用下标方式访问第三个元素:"<<s[3]<<endl;

/******************************************* 6 **********************************************/
//删除string对象的元素
it =s.begin();
s.erase(s.begin()+2);//删除第二个元素
s.erase(it+1,it+3);

/******************************************* 7 **********************************************/
//返回字符串的长度
cout<<"字符串长度为:"<<s.length()<<endl;
//判断字符串是否为空
cout<<"判断字符串是否为空(空输出1,否则输出0)"<<s.empty();


/******************************************* 8 **********************************************/
/*********************替换string对象的字符******************************************/
s.replace(3,3,"good");//从第3个开始,将连续的三个字符串替换为“good”

/******************************************* 9 **********************************************/
/*搜索string对象的元素或者字串*/
cout<<s.find('c')<<endl;//查找第一个字符为'c',返回下标值
cout<<s.find("goo")<<endl;//差值第一个字符串为"goo",返回下标值

/******************************************* 10 **********************************************/
/*string对象比较,*/
s.compare("hello");//比对方大,返回1;相等返回0;否则返回-1

/******************************************* 11 **********************************************/
/*string对象作为vector元素*/
vector<string> v;
v.push_back("jack");
v.push_back("kate");
cout<<"vector的第一个字符串为:"<<v[0]<<endl;
cout<<"vector的第一个字符串的第一个字符为:"<<v[0][0]<<endl;

/******************************************* 12 **********************************************/
/******************************string对象的数字化处理*********************/
//ACM竞赛中,常常需要将读入的数字的每位分离出来,如果采用取余的方法,花费的时间会太长,这时候,我们可以将读入的数据当成字符串来处理
string sn="1234";
int sum =0;
for(int i=0;i<sn.length();i++)
{
if(sn[i]=='0') sum+=0;
else if(sn[i]=='1') sum+=1;
else if(sn[i]=='2') sum+=2;
else if(sn[i]=='3') sum+=3;
else if(sn[i]=='4') sum+=4;

}
cout<<"sum为:"<<sum<<endl;

 

/******************************************* 13 **********************************************/
//string substr(int pos = 0,int n = npos) const;//返回pos开始的n个字符组成的字符串
string str1 = s.substr(2,4);
cout<<"字串为:"<<str1<<endl;

 

return 0;
}
//ABD##E##CF##G##

posted @ 2016-08-03 20:04  Axel_uestc  阅读(125)  评论(0编辑  收藏  举报