C++之 string的多种玩法

58 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第26天,点击查看活动详情

初始化定义字符串的多种样式:

string str:生成一个空的字符串(str==“”)

string str(str):将已有的字符串复制出来 string str(“ahhhhh”)  str是“ahhhhh”的复制品,也是给str赋值为“ahhhhh”

string str(str, str_begin, str_len):对复制的字符串进行截取 将str从str_begin的位置开始截取,直到取够str_len长度为止。

string str(str, char_len):和上面的使用方法类似,区别于本方法是直接从头开始取,直到指定长度为止

string s(str, index): 这个函数好像看似与上一个函数完全相同,但是他的内部其实走的不一样的流程,这个函数是指把str字符串从下标为index的位置开始复制,直到结束。

这两个方法在使用上不同:

第一个:string str(“ahhhh”,3) 结果 str = “ahh”

第二个 string str(data,4)(就当data = “ahhhhhh”) 结果 str = “hhh”

string str(num, char):这是一种较为特殊的使用方法,他会把char复制num遍形成一个新的字符串。

字符串的比较:

1.compare()

Compare有多种重写。

最常用的一种方法 就是直接 str. Compare(str2) 他直接比较 这里的比较是从第一位开始,两者开始的位置都是第一位,在比较过程中如果有一方大会直接结束,返回返回值(如果str大于str2,会返回大于0的值,相等返回0,小于返回负数)

Compare(begin,end,str)  str.compare(2,4,str2) 他代表将str的2到4位与str2进行比较 str2的起始位置还是第一位  str.compare(2,4,str2,2,4) 这样写是对str2的起始和结束位置进行限制。

2.strcmp()

他的返回值问题与compare的返回值一样的逻辑。

Strcmp(str,str2) 这样直接把str和str2进行对比 相当于str. Compare(str2)。

3.最常用的方法:

str == str2

字符串的替换

  String Str(“12345678”);

Str.replace(3, 2, "aa");    str->”123aa678” 这种方式代表从下标为3的位置替换长度2的字符串

Str.replace(s1.begin(), s1.begin() + 5, "haha");  他代表从begin到end的位置替换为haha