zoukankan      html  css  js  c++  java
  • C++ 经常使用类 string类

    ===6.3.2使用string对象===


    string word="I love China"
    *链接字符串*
    string description=adjective  + " " + word;
    _Note_: 不能连接两个字符串字面量,以下的语句是错误的

    string test= "I have" + "a dream";


    ===6.3.3訪问字符串中的字符===
    *读取字符串*
    getline(cin, text);
    getline(cin, text, '#')_;

    word[index];


    ===6.3.4訪问子字符串===
    * substr(index0, length);
    string phrase = "the higher the fewer";

    string wold= phrase.substr(4,6 );


    ===6.3.5比較字符串===
    *操作符*
    > >= < !=
    *compare()*
    world.compare("end");

    word.compare(2, 4, "end");


    ===6.3.6搜索字符串:find===
    string sentence = "Manners maketh man";
    int a= sentence.find("man");
    int b= sentence.find("man", index);//从index開始搜索
    假设没有找到。返回~~string:npos~~
    *搜索字符集*
    string separeators= " ,."";
    sentence.find_first_of(separeators);
    sentence.find_last_of(separeators);
    sentence.find_last_not_of(separeators);
    sentence.find_first_not_of(separeators);
    *逆向搜索*

    sentence.rfind("man");


    ===6.3.7改动字符串:insert、replace、erase===
    *1.insert*
    _`mystring.insert(index, anotherstring)`
    sentence.insert(13, world, 8, 5);//从index=8開始之后的5个字符
    把几个同样字符串插入到string对象中:sentence.insert(index,times, string);
    *2.replace*
    将从index開始的num个字符,替换成新的string:sentence.replace(index, num, string);
    *3.erase*

    删除从index開始的num个字符:sentence.erase(index, num);


    ===6.3.8注意事项===


    1) append函数与char 和char*

    append函数的原型例如以下:

    string& append (const string& str);
    	
    string& append (const string& str, size_t subpos, size_t sublen);
    	
    string& append (const char* s);
    
    string& append (const char* s, size_t n);
    	
    string& append (size_t n, char c);
    注意。char* 和char用作append的參数时候。比如,想在string尾部添加一个字符,须要用mystring.append(1, ch) 而不是mystring.apend(ch). 相同。想将chars的当中一部分插入string中。须要用mystring.append(s+a, b-a)


    注意,假设只想添加一个字符。使用push_back就可以

    string 具体解释

    1.*string constructor*

    default (1) string();
    copy (2) string (const string& str);
    substring (3) string (const string& str, size_t pos, size_t len = npos);
    from c-string (4) string (const char* s);
    from buffer (5) string (const char* s, size_t n);
    fill (6) string (size_t n, char c);
    range (7) template <class InputIterator>
      string  (InputIterator first, InputIterator last);

    // string constructor
    #include <iostream>
    #include <string>
    
    int main ()
    {
      std::string s0 ("Initial string");
      // constructors used in the same order as described above:
      std::string s1;
      std::string s2 (s0);
      std::string s3 (s0, 8, 3);
      std::string s4 ("A character sequence", 6);
      std::string s5 ("Another character sequence");
      std::string s6 (10, 'x');
      std::string s7a (10, 42);      // 42 is the ASCII code for '*'
      std::string s7b (s0.begin(), s0.begin()+7);
      std::cout << "s1: " << s1 << "
    s2: " << s2 << "
    s3: " << s3;
      std::cout << "
    s4: " << s4 << "
    s5: " << s5 << "
    s6: " << s6;
      std::cout << "
    s7a: " << s7a << "
    s7b: " << s7b << '
    ';
      return 0;
    }
    **output**:
    s1: 
    s2: Initial string
    s3: str
    s4: A char
    s5: Another character sequence
    s6: xxxxxxxxxx
    s7a: **********
    s7b: Initial

    2.迭代器:
    begin();
    end();


    3.capacity:
    size();
    length();
    clear();
    empty();


    4.Element Access:
    operator[]
    at()
    back();
    front();

    5.Modifier
    operator+=
    append()
    push_back()
    assign()
    insert()
    erase()
    replcace();
    swap();
    pop_back();

    6.String Operations:
    copy();
    find();
    find_first_of();
    find_last_of();
    find_first_not_of();
    find_last_not_of();
    substr();
    compare();

    7.Member constants:
    npos


    8.Non-member function overloads:
    getline();

  • 相关阅读:
    C#与数据库访问技术总结(十四)之DataAdapter对象
    《运维三十六计》:运维生存宝典
    企业运维几百个重点面试题汇总(老男孩)
    5、KVM虚拟化典型案例:生产环境问题案例与分析
    Linux运维必会的实战编程笔试题(19题)
    面试中常见的 MySQL 考察难点和热点
    Linux系统运维常见面试简答题(36题)
    一键备份脚本 backup.sh
    Linux常用的200个命令总结分类
    2、KVM虚拟化CPU、内存、网络、磁盘技术及性能调优方法
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5183956.html
Copyright © 2011-2022 走看看