• 写c++的时候最让人头痛的就是,处理字符串了。

    今天,终于知道了使用STL-string了。

    #include<string>之后就可方便地使用字符串了。以前常使用的一些字符了串运算符也可以使用了。如果要使用指针可以用c_str方法转换成数组后使用。

    常用方法:

    length(),取得字符串的长度。
    substr(),从字符串中取出一个子串。
    at()/operator [],取得字符串中指定位置的字符。
    find/rfind(),从前往后/从后往前在字符串中查找一个子串的位置。
    find_first_of(),在字符串中找到第一个在指定字符集中的字符位置。
    find_first_not_of(),在字符串中找到第一次人不在指定字符集中的字符位置。
    find_last_of(),在字符串中找到最后一个在指定字符集中的字符位置。
    find_last_not_of(),在字符串中找到最后一个不在字符集中的字符位置。

     

  •  

    打开文件的方式在类ios(是所有流式I/O类的基类)中定义,常用的值如下:

    ios::app   以追加的方式打开文件     用这个属性有新数据进来的时候就不会覆盖了。
    ios::ate:   文件打开后定位到文件尾,ios:app就包含有此属性
    ios::binary:  以二进制方式打开文件,缺省的方式是文本方式。两种方式的区别见前文
    ios::in:    文件以输入方式打开
    ios::out:   文件以输出方式打开
    ios::nocreate: 不建立文件,所以文件不存在时打开失败 
    ios::noreplace:不覆盖文件,所以打开文件时如果文件存在失败
    ios::trunc:  如果文件存在,把文件长度设为0

    可以用“或”把以上属性连接起来,如ios::out|ios::binary

  • 今天学了虚函数,用virtual声明,有了虚函数的类,也就成了抽象类。这与Java里用abstract定义抽象类是不一样的。

    再写程序时发现一个问题就是在switch语句的case语句后面不能对变量或是类进行定义。解决这个问题的方法就是在case语句后加上大括号,如:

    case x:{

    ……

    }