zoukankan      html  css  js  c++  java
  • string的一些基本操作和骚操作

    1.赋值

      直接来就行:

      string ss;

      ss="aaa";

      或者

      string sa,sb;

      cin>>sa;

      sb=sa;

    2.添加

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

      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插入到了第二个字符前面了)

    3.删除

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

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

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

      ss.erase(it+1);

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

    4.替换

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

      ss="abcdefg";

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

      结果ss为ab999efg;

    5.查找

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

      ss.find("abc");

    6.比较

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

      ss.compare("abc");

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

    7.反向排序

      直接reverse(ss.begin(),ss.end());

    8:第一个元素和最后一个元素

           

    begin

    语法:

      iterator begin();
    

    begin()函数返回一个迭代器,指向字符串的第一个元素.

    9 :

    查找(find)

    语法:

      size_type find( const basic_string &str, size_type index );
      size_type find( const char *str, size_type index );
      size_type find( const char *str, size_type index, size_type length );
      size_type find( char ch, size_type index );
    

    find()函数:

    • 返回str在字符串中第一次出现的位置(从index开始查找)如果没找到则返回string::npos,
    • 返回str在字符串中第一次出现的位置(从index开始查找,长度为length)。如果没找到就返回string::npos,
    • 返回字符ch在字符串中第一次出现的位置(从index开始查找)。如果没找到就返回string::npos

    例如,

     

        string str1( "Alpha Beta Gamma Delta" );
        unsigned int loc = str1.find( "Omega", 0 );
        if( loc != string::npos )
          cout << "Found Omega at " << loc << endl;
        else
          cout << "Didn't find Omega" << endl;
    10:大小写装换

    //转换为大写
    transform(s.begin(),s.end(),s.begin(),::toupper);

    //转换为小写
    transform(s.begin(),s.end(),s.begin(),::tolower);

  • 相关阅读:
    jvm的几个概念误区
    JDK动态代理和CGLib动态代理的对比
    mybatis源码解析(连载)
    HashMap源码解析(基于JDK1.8)
    线程池ThreadPoolExecutor——Worker源码解析
    Java线程池原理分析
    装饰器模式在mybatis-cache包中的应用
    rocketMQ手动创建Topic
    JVM误区--动态对象年龄判定
    云上奈飞(三):隐藏在播放按钮下的奥秘(上)
  • 原文地址:https://www.cnblogs.com/ysl1311/p/10508541.html
Copyright © 2011-2022 走看看