C++ Primer学习笔记(2)—字符串string类的使用

来源:互联网 发布:好用的炒股软件 知乎 编辑:程序博客网 时间:2024/06/17 12:04

学过一点C语言的人都知道,字符串操作是不可避免的,但C语言中字符串操作起来比较麻烦,比如两个字符串比较、连接、对串中某个字符进行操作等,需要调用相应地函数。而C++中,由于类概念的引入,在string类中定义了常用的字符串操作符和函数,只需在程序开头包含string文件,直接调用即可,相当方便。常用的string操作如表1:

表1  常用的 string 操作s.empty()   如果s为空字符串,则返回trues.size()   返回s中字符的个数s[n]   返回s中位置为n的字符,位置从0开始计数s1 + s2   把s1和s2连接成一个新的字符串,返回新生成的字符串s1 = s2   把s1的内容替换成s2的副本s1 == s2   比较s1与s2中的内容,相等则返回true,否则false!=, <, <=,
>, >=   保持这些操作符惯有的含义


表2 string 类中定义的函数isalnum(c)    如果c是字母或数字,则为trueisalpha(c)如果是字母,则为trueiscntrl()如果是控制字符,则为trueisdigit()如果是数字,。。。isgraph()如果不是空格,但可以打印,则为trueislower()小写字母isupper()大写字母isprint()可打印的字符ispunct()标点符号isspace()空白字符isxdigit()十六进制数tolower()如果是大写字母,则返回其小写字母,否则直接返回小写字母toupper()如果是小写字母,则返回其大写字母,否则直接返回大写字母


下面看一个应用实例,将一个字符串中所有大写字母换成小写,小写字母换成大写:

#include <iostream>#include <string>using namespace std;int main(int argc, const char * argv[]) {    // insert code here...    //std::cout << "Hello, World!\n";    string line("Wuhan University!");    for(int index = 0;index <= line.size();++index)        line[index] = islower(line[index])?toupper(line[index]):tolower(line[index]);    cout << line <<endl;    return 0;}

原字符串是

Wuhan University!

输出结果是

wUHAN uNIVERSITY!

                

0 0