C++字符串操作

头文件:#include <string>


1、声明一个字符串变量很简单: 
string Str; 

a) string s; //生成一个空字符串s 
b) string s(str) //拷贝构造函数 生成str的复制品 
c) string s(str,stridx) //将字符串str内“始于位置stridx”的部分当作字符串的初值 
d) string s(str,stridx,strlen) //将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值 
e) string s(cstr) //将C字符串作为s的初值 
f) string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。 
g) string s(num,c) //生成一个字符串,包含num个c字符 
h) string s(beg,end) //以区间beg;end(不包含end)内的字符作为字符串s的初值 
i) s.~string() //销毁所有字符,释放内存 

2.字符串操作函数 
这里是C++字符串的重点 
1) =,assign() //赋以新值 
“=”的用法不作详细说明,assign用法如下:

# include <iostream>
# include <string>
using namespace std;
int main()
{
    string str1 = "yesterday once more";
    string str2 ("my heart go on");
    string str3,str4;

    str3.assign(str2,3,6);  // = heart
    str4.assign(str2,3,string::npos); // = heart go on (从2开始到结尾赋给str4)
    str4.assign("gaint"); // =gaint
    str4.assign("nico",5); // = nico,超出长度会发生什么。。。
    str4.assign(5,'x'); // = xxxxx
    cout<<str4<<endl;

    getchar();
    return 0;
}

2) swap() //交换两个字符串的内容 
用法如下:

# include <iostream>
# include <string>
using namespace std;
int main()
{
    string str1 = "yesterday once more";
    string str2 ("my heart go on");

    str2.swap(str1);
    cout<<str1<<endl; // = my heart go on
    cout<<str2<<endl; // = yesterday once more

    getchar();
    return 0;
}
3)  +=,append(),push_back()   *//在尾部添加字符*  
增加字符(这里说的增加是在尾巴上),函数有 +=、append()、push_back()。举例如下: 
s+=str;//加个字符串 
s+=”my name is jiayp”;//加个C字符串 
s+=’a’;//加个字符 
s.append(str); 
s.append(str,1,3);//不解释了同前面的函数参数assign的解释 
s.append(str,2,string::npos)//不解释了 
s.append(“my name is jiayp”); 
s.append(“nico”,5); 
s.append(5,’x’); 
s.push_back(‘a’);//这个函数只能增加单个字符

4) erase() //删除字符**

s.erase(13);//从索引13开始往后全删除  
s.erase(7,5);//从索引7开始往后删5个  

5) replace() //替换字符** 
string s=”il8n”; 
s.replace(1,2,”nternationalizatio”);//从索引1开始的2个替换成后面的 
C_string s = internationalization 

6) ==,!=,<,<=,>,>=,compare() //比较字符串 
C ++字符串支持常见的比较操作符(>,>=,<,<=,==,!=),甚至支持string与C-string的比较(如 str<”hello”)。在使用>,>=,<,<=这些操作符的时候是根据“当前字符特性”将字符按字典顺序进行逐一得比较。字典排序靠前的字符小,比较的顺序是从前向后比较,遇到不相等的字符就按这个位置上的两个字符的比较结果确定两个字符串的大小。 
另一个功能强大的比较函数是成员函数compare()。他支持多参数处理,支持用索引值和长度定位子串来进行比较。他返回一个整数来表示比较结果,返回值意义如下:0-相等 >0-大于 <0-小于。举例如下: 
string s(“abcd”); 
s.compare(“abcd”); //返回0 
s.compare(“dcba”); //返回一个小于0的值 
s.compare(“ab”); //返回大于0的值 
s.compare(s); //相等 

7)  size(),length()  //返回字符数量 
现有的字符数,函数是size()和length(),他们等效。

8) substr() //返回某个子字符串 
substr(),形式如下: 
s.substr();//返回s的全部内容 
s.substr(11);//从索引11往后的子串 
s.substr(5,6);//从索引5开始6个字符  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值