《C++面向对象程序设计》课程笔记 lessen7
1. string 类1 string 对象的初始化 string 类是模板类: typedef basic_string ?使用 string 类要包含头文件 string 对象的初始化: string s1("MARCH"); string s2 = "APRIL"; string s3(8,'x'); ?错误的初始化方法:(不能通过一个字符和一个整数来初始化 sstring) string error1 = 'c'; string error2('u'); string error3 = 22; string error4(8); ?可以将字符赋值给 string 对象。但不能用字符初始化?string 对象。 string s; s = 'n'; string 对象的长度用成员函数 length() 读取? string s("hello"); cout << s.length() << endl; ?string 支持流读取运算符 string stringObject; cin >> stringObject; ?string 支持 getline 函数 string s; getline(cin,s); ?2 string 对象的赋值和连接 用 “=” 赋值? string s1("cat"); string s2; s2 = s1; ?用 assign 成员函数复制 string s1("cat"); string s3; s3.assign(s1); ?用 assign 成员函数部分复制 string s1("catpig"); string s3; s3.assign(s1,1,3); //从 s1 中下标为1的字符开始复制3个字符 单个字符复制? s2[5] = s1[3] = 'a'; 逐个访问 string 对象中的字符 string s1("Hello"); for(int i=0;i cout << s1.at(i) << endl; ?成员函数 at 会做范围检查,如果超出范围,会抛出 out_of_range 异常,而下标运算符 [ ] 不做范围检查。 用 “+” 运算符连接字符串? string s1("good"); string s2("morning!"); s1 += s2; cout << s1; ?用成员函数 append 连接字符串 string s1("good"); string s2("morning!"); s1.append(s2); cout << s1; s2.append(s1,3,s1.size()); //s1.stze(),s1字符数 //下标为3开始,s1,size()个字符,如果字符串内没有足够字符,则复制到字符串最后一个字符 cout << s2; ?3 比较 string 对象 用关系运算符比较 string 大小:==,>,>=,<,<=,!= 。返回值都是 bool 类型,成立返回 true,否则返回 false。 用compare 成员函数比较 string 对象的大小。 string s1("hello"),s2("hello"),s3("hell"); int f1 = s1.compare(s2); int f2 = s1.compare(s3); int f3 = s3.compare(s1); int f4 = s1.compare(1,2,s3,3);//s1:1-2; s3:0-3 int f5 = s1.compare(0,s1.size(),s3); //s1:0-end cout << f1 << endl << f2 << endl << f3 << endl << f4 << endl << f5 << endl; //输出:0 // hello == hello // 1 // hello > hell // -1 // hell < hello // -1 // el < hell // 1 // hello > hell (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |