c++中string的常见用法

c++中string的常见用法,第1张

c++中string的常见用法 头文件---> #include

常用函数 string s; 获取字符串的字符个数

s.size()

返回s中的字符的个数

判断字符串是否为空

s.empty()

s为空返回true,否则返回false

1.子字符串 *** 作

s.substr(pos,n)

返回一个string,包含s中从pos开始的n个字符的拷贝(pos的默认值为0,n的默认值为s.size()-pos,即拷贝从pos开始的所有字符)

    string s = "abcdef";
    string a = s.substr();//abcdef
    string b = s.substr(1);//bcdef
    string c = s.substr(0, 3);//abc
    string d = s.substr(2, -1);//cdef,忽略-1
    string f = s.substr(-1);//错误!
2.修改string的 *** 作

s.insert(pos,args)

在pos之前插入args指定的字符。pos可以是一个下标或一个迭代器。接受下标的版本返回一个指向s的引用;接受迭代器的版本返回指向第一个插入字符的迭代器。

    string s = "abcdef",a,b,c,d,e;
    a = b = c = d = e = s;
    s.insert(0, "A");//Aabcdef
    a.insert(2, "B");//abBcdef
    b.insert(b.size(), "C");//abcdefC
    c.insert(0, 3, '!');//!!!abcdef  在c的首位置插入3个!
    d.insert(d.begin(), 'D');//Dabcdef
    e.insert(0, 'E');//编译错误 无此重载

s.erase(pos,len)

删除从位置pos开始的len个字符。如果len被省略,则删除从pos开始直至s末尾的所有字符。返回一个指向s的引用

    string s = "abcde",a,b,c,d;
    a = b = c = d = s;
    s.erase();//""  全部删除
    a.erase(0, 1);//"bcde" 从0开始的1个字符
    b.erase(3);//"abc"  从3开始的所有字符
    c.erase(3, 1);//"abce" 从3开始的一个字符
    d.erase(3, -3);//"abc" 从3开始的所有字符(负数不起作用,不会导致删除指定索引前的元素)

s.assign(args)

将s中的字符替换为args指定的字符。返回一个指向s的引用

    string s = "abcdef",a,b,c,d,e;
    a = b = c = d = e = s;
    s.assign("bca");//bca
    a.assign(s);//bca
    b.assign(2,'@');//@@
    c.assign(b.begin(), b.end());//@@

s.append(args)

将args追加到s。返回一个指向s的引用

    string s = "abcdef",a,b,c,d,e;
    a = b = c = d = e = s;
    s.append("123", 0,2);//abcdef12
    a.append(2, '#');//abcdef##
    b.append("$$");//abcdef$$

s.replace(range,args)

删除s中范围range内的字符,替换为args指定的字符。range或者是一个下标和一个长度,或者是一对指向s的迭代器。返回一个指向s的引用

    string s = "abcdef",a,b,c,d,e;
    a = b = c = d = e = s;
    s.replace(0, s.size(), "aa");//aa
    a.replace(a.begin(), a.end(), "bb");//bb
    b.replace(0,2,"cc");//cccdef
    c.replace(0, 2, 2, 'd');//ddcdef

args可以是下列形式之一;append和assign可以使用所有形式

str不能与s相同,迭代器b和e不能指向s

str(字符串str)

str,pos,len(str中从pos开始最多len个字)

cp,len(从cp指向的字符数组的前(最多)len个字符)

cp(cp指向的以空字符结尾的字符数组)

n,c(n个字符c)

b,e(迭代器b和e指定的范围内的字符)

初始化列表(花括号包围的,以逗号分割的字符列表)

3.string的搜索 *** 作

s.find(args) 查找s中args第一次出现的位置

s.rfind(args) 查找s中args最后一次出现的位置

s.find_first_of(args) 在s中查找args中任何一个字符第一次出现的位置

s.find_last_of(args) 在s中查找args中任何一个字符最后一次出现的位置

s.find_first_not_of(args) 在s中查找第一个不在args中的字符

s.find_last_not_of(args) 在s中查找最后一个不在args中的字符

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699095.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存