String使用

五、String使用

5.1       Strdup()

const char*变量转化为char*

 

5.2       字符串转化以及一些其他操作

String::c_str()返回以’/0’结尾的const char *

String::data()返回不以’/0’结尾的const char *

String::copy()拷贝指定个数的字符进入目标字符串,不加’/0’结尾。

String::length()string::size()等效,均为求不包含’/0’的字符串长度。

String::[]不会进行类型检查,对于下标值是string::size()的返回’/0’

String::at()进行类型检查,对于下标值是string::size()的抛出out of range异常。

 

5.3       String::compare()

   string s(“abcd”);
    s.compare(“abcd”); //
返回
0
    s.compare(“dcba”); //
返回一个小于0的值

    s.compare(“ab”); //
返回大于0的值
  s.compare(s); //
相等
    s.compare(0,2,s,2,2); //
”ab””cd”进行比较 小于零
    s.compare(1,2,”bcx”,2); //
”bc””bc”比较。

 

5.4       修改操作

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’);//这个函数只能增加单个字符 STL熟悉的理解起来很简单

s.insert(0,”my name”);
s.insert(1,str);

string s=”il8n”;
s.replace(1,2,”nternationalizatio”);//
从索引1开始的2个替换成后面的
C_string
s.erase(13);//
从索引13开始往后全删除

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

 

5.5       提取子串和字符串连接

 

题取子串的函数是:substr(),形式如下:

s.substr();//返回s的全部内容

s.substr(11);//从索引11往后的子串

s.substr(5,6);//从索引5开始6个字符

把两个字符串结合起来的函数是+。(谁不明白请致电120

 

5.6       输入输出操作

1>> 从输入流读取一个string

2<< 把一个string写入输出流。

另一个函数就是getline(),他从输入流读取一行内容,直到遇到分行符或到了文件尾。

 

5.7       搜索与查找

查找函数很多,功能也很强大,包括了:

    find()

    rfind()

    find_first_of()

    find_last_of()

    find_first_not_of()

    find_last_not_of()

这些函数返回符合搜索条件的字符区间内的第一个字符的索引,没找到目标就返回npos。所有的函数的参数说明如下:

第一个参数是被搜寻的对象,如果为”bd”,则表示搜索’b’’d’这两个字符,而不是”bd”这个字符串。第二个参数(可有可无)指出string内的搜寻起点索引,对于find_first_of()    find_first_not_of()表示从这个索引点开始顺向搜索,对于find_last_of()find_last_not_of()表示从这个索引点开始逆向搜索。第三个参数(可有可无)指出搜寻的字符个数。

 

npos表示string可能拥有的最大元素数。

 

部分摘自

C++ STRING详解

http://blog.csdn.net/choiquinn/archive/2006/12/09/1436433.aspx

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值