zoukankan      html  css  js  c++  java
  • 第17章 string基本字符序列容器

    /*
    
      第17章 string基本字符序列容器
       17.1 string技术原理
       17.2 string应用基础
       17.3 本章小结
    
    */
    
    
    
    //  第17章 string基本字符序列容器
    //   17.1 string技术原理 --------------------------------------------------------------------------------------
    
    //   17.2 string应用基础 --------------------------------------------------------------------------------------
    
    
    //259
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      string s1;
      s1.push_back('a');
      s1.push_back('b');
      s1.push_back('c');
      cout << "打印s1: " << s1 << endl;
      //
      char *cArray = "efgh";
      string s2(cArray);
      cout << "打印s2: " << s2 << endl;
      //字符串的"+"操作
      cout << "打印s1+s2: " << s1 + s2 << endl;
      //字符串s1后添加字符串s2
      cout << "append后,打印s1: " << s1.append(s2) << endl;
      //在s1的第2个字符位置前插入字符'8'
      string::iterator i;
      i = s1.begin();
      i++;
      s1.insert(i, '8');
      cout << "insert后,打印s1: " << s1 << endl;
      //字符串的"+="操作
      s1 += s2;
      cout << "s1+=s2后,打印s1: " << s1 << endl;
      return 0;
    }
    
    
    //260 遍历字符
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      char *cArray = "hello, world!";
      string s(cArray);
      //数组方式
      for(unsigned int j = 0; j < s.size(); j++)
        cout << "" << j << "个字符: " << s[j] << endl;
      //迭代器方式
      string::reverse_iterator ri, rend;
      rend = s.rend();
      cout << "反向打印字符" << endl;
      for(ri = s.rbegin(); ri != rend; ri++)
        cout <<  *ri << ' ';
      cout << endl;
      return 0;
    }
    
    
    //261 erase
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      char *cArray = "a12345678b";
      string s(cArray);
      s.erase(s.begin());
      cout << s << endl; //打印出12345678b
      //
      s.erase(s.begin() + 3, s.end() - 2);
      cout << s << endl; //打印出1238b
      //
      s.erase(0, 2);
      cout << s << endl; //打印38b
      //
      s.clear();
      return 0;
    }
    
    
    //262 replace
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      char *cArray1 = "hello,boy!";
      string s(cArray1);
      //
      s.replace(6, 3, "gril"); //boy替换为girl
      cout << s << endl; //打印hello gril!
      //
      s.replace(10, 1, 1, '.'); //将"hello gril!"的'!'替换为'.'
      cout << s << endl; //打印hello gril.
      //
      s.replace(s.begin(), s.begin() + 5, "good morning");
      cout << s << endl; //打印good morning girl.
      return 0;
    }
    
    
    
    //263, find
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      //0123456789012345678901234
      string s("dog bird chicken bird cat");
      //字符串查找
      cout << s.find("bird") << endl; //打印4
      cout << (int)s.find("pig") << endl; //打印-1
      //字符查找
      cout << s.find('i', 7) << endl; //打印11
      //从字符串的末尾开始查找字符串
      cout << s.rfind("bird") << endl; //打印17
      //从字符串的末尾开始查找字符
      cout << s.rfind('i') << endl; //打印18
      //查找第1个属于某子串的字符
      cout << s.find_first_of("13r98") << endl; //找到字符r,打印6
      //查找第1个不属于某字符串的字符
      cout << s.find_first_not_of("dog bird 2006") << endl; //找到字符c,打印9
      //查找最后一个属于某子串的字符
      cout << s.find_last_of("13r98") << endl; //字符r,打印19
      //查找最后一个不属于某字符串的字符
      cout << s.find_last_not_of("tea") << endl; //字符c,打印22
      return 0;
    }
    
    
    //263-264, compare
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      string s1("abcdef");
      string s2("abc");
      cout << s1.compare("abcdef") << endl; //相等,打印0
      cout << s1.compare(s2) << endl; //s1 > s2,打印1
      cout << s1.compare("abyz") << endl; //s1 < "abyz",打印-1
      //
      cout << s1.compare(0, 3, s2) << endl; //s1的前3个字符==s2,打印0
      return 0;
    }
    
    
    //264
    #include <string>
    #include <iostream>
    int main(void)
    {
      using namespace std;
      string s;
      cout << s.empty() << endl; //空字符串,返回1
      s += "1234567";
      cout << s.empty() << endl; //不为空,返回0
      cout << s.size() << endl; //7个字符,返回7
      cout << s.length() << endl; //返回7
      //
      const char *cArray = s.c_str();
      cout << cArray[2] << endl; //返回字符3
      return 0;
    }
    
    
    
    //   17.3 本章小结 --------------------------------------------------------------------------------------

    TOP

  • 相关阅读:
    在linux上开发210的hdmi-servers输出
    haproxy.cfg
    【Quartz】Quartz的搭建、应用(单独使用Quartz)
    application.xml定时
    URLEncode转json
    Callable与Future的简单介绍
    Java并发:Callable、Future和FutureTask
    Java并发编程:Callable、Future和FutureTask
    EXECUTORSERVICE线程池讲解
    ExecutorService中submit和execute的区别
  • 原文地址:https://www.cnblogs.com/xin-le/p/4111770.html
Copyright © 2011-2022 走看看