zoukankan      html  css  js  c++  java
  • string

    string基操:

    #include<string>

    string a;

    cin>>a;

    长度的获取:

    a.size();

    获得第一个字符:

    string:const_iterator it=s.begin();
    count<<*it<<endl;

    获得最后一个字符:

    string:const_iterator it=s.end();
    it--;
    count<<*it<<endl;


    倒置串:

    reserve(s.begin(),s.end());

    查找串:

    s.find(s1);

    有的话返回起始位置 没有则返回-1

    截取string的字串:

    substr有2种用法:

    假设:string s = "0123456789";

    string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"

    string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"

    添加:

    在末尾加字符或字符串直接用加号:

      string ss;

      ss+='a';

      ss+="aaa";

      在中间插入一个字符用ss.insert()函数:

      ss.insert(ss.begin()+1,'a');//在ss[1]之前插入字符a

      在中间插入一个字符串可以用替换函数ss.replace()

      ss.replace(2,0,"aaa");//从第二个字符开始将连续0个元素替换为aaa(就是将aaa插入到了第二个字符前面了)

    删除:

    给ss赋空值ss=""就是把整个字符串清空了。

      用ss.erase()删除掉迭代器所指的一个或一个区间内(左闭右开)的元素。

      string::iterator it=ss.begin();

      ss.erase(it+1);

      ss.erase(it+1,it+3);

    替换:
    就是用ss.replace()函数,第一个参数表示从第几个字符开始,第二个参数表示一共替换几个,第三个参数表示换成的字符(串);

      ss="abcdefg";

      ss.replace(2,2,"999");

      结果ss为ab999efg;


    查找:
    使用ss.find()函数,查得到则返回第一个下标,查不到返回4294967295

      ss.find("abc");


    比较:
     使用ss.compare()函数,ss大则返回1,小返回-1,相等返回0.

      ss.compare("abc");

      注:所谓“大”,是指字典序大(在字典中靠后)。

  • 相关阅读:
    YbtOJ#573后缀表达【二分图匹配】
    CF605EIntergalaxy Trips【期望dp】
    YbtOJ#482爬上山顶【凸壳,链表】
    AT4996[AGC034F]RNG and XOR【FWT,生成函数】
    YbtOJ#903染色方案【拉格朗日插值,NTT,分治】
    YbtOJ#832鸽子饲养【凸包,Floyd】
    YbtOJ#463序列划分【二分答案,线段树,dp】
    CF618FDouble Knapsack【结论】
    P3214[HNOI2011]卡农【dp】
    YbtOJ#526折纸游戏【二分,hash】
  • 原文地址:https://www.cnblogs.com/bhd123/p/9528705.html
Copyright © 2011-2022 走看看