C++字符串操作小结

忽略大小写比较大小

  • 库函数strcasecmp和_stricmp:
    这两个函数都不属于C++标准库,strcasecmp由POSIX引入,windows平台则定义了功能等价的_stricmp。用法和C++标准库的strcmp类似。

    #include <cstring>
    
    #if defined(_WIN32)
    #define strcasecmp _stricmp
    #endif
    
  • boost函数iequals:

    #include <boost/algorithm/string.hpp>
    
    int main(int argc, const char *argv[]) {
        bool equal = boost::iequals("ABC", "abc");
        return 0;
    }
    

在gcc -O2的条件下,发现iequals比strcasecmp慢了很多。

读取一整行

istream& getline (istream& is, string& str, char delim);
istream& getline (istream& is, string& str);

std::string类提供了读取一整行的接口,从标准输入读取时,可以用getline(std::cin, str)来读取整行数据。

转义字符

转义字符 意义 ASCII码值(十进制)
\a 响铃(BEL) 007
\b 退格(BS) ,将当前位置移到前一列 008
\f 换页(FF),将当前位置移到下页开头 012
\n 换行(LF) ,将当前位置移到下一行开头 010
\r 回车(CR) ,将当前位置移到本行开头 013
\t 水平制表(HT) (跳到下一个TAB位置) 009
\v 垂直制表(VT) 011
|代表一个反斜线字符''' 092
' 代表一个单引号(撇号)字符 039
" 代表一个双引号字符 034
? 代表一个问号 063
\0 空字符(NULL) 039
\ddd 1到3位八进制数所代表的任意字符 三位八进制
\xhh 1到2位十六进制所代表的任意字符 二位十六进制
posted @ 2020-03-24 19:37  HachikoT  阅读(187)  评论(0编辑  收藏  举报