logo资料库

C++标准函数库.docx

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
1C++ 标准库
2标准函数库
2.1输入/输出 I/O
2.2字符串和字符处理
2.2.1操作符(Operators)
3.3数学
3.3.1Standard C Math
3.4 时间、日期和本地化
3.5 动态分配
3.6 其他
3.7 宽字符函数
文档名称 文档密级 1 C++ 标准库 C++ 标准库可以分为两部分:  标准函数库: 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。  面向对象类库: 这个库是类及其相关函数的集合。 C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。 2 标准函数库 标准函数库分为以下几类: 2.1 输入/输出 I/O iostream 库是一个面向对象的库,它使用流提供输入和输出功能。 标准对象 作为 iostream 库的一部分,头文件声明某些对象,这些对象用于对标准输入和输出 执行输入和输出操作。 2022-6-15 华为保密信息,未经授权禁止扩散 第 1页, 共 22页
文档名称 文档密级 它们分为两组:它们是流行的 cin,cout,cerr 和 clog 以及它们的宽字符函数,声明为 wcin,w cout,wcerr 和 wclog。 C++ iostream 的主要作用是让初学者有一个方便的命令行输入输出试验环境,在真实的 项目中很少用到 iostream,因此不必把精力花在深究 iostream 的格式化与 manipulat or。 C 语言 stdio 格式化输入输出的缺点 1. 对编程初学者不友好 看看下面这段简单的输入输出代码。 #include int main() { int i; short s; float f; double d; char name[80]; scanf("%d %hd %f %lf %s", &i, &s, &f, &d, name); printf("%d %d %f %f %s", i, s, f, d, name); } 2. 安全性(security) 3. 类型安全(type-safe) iostream 对初学者很友好,用 iostream 重写与前面同样功能的代码: #include #include using namespace std; int main() { int i; short s; float f; double d; 2022-6-15 华为保密信息,未经授权禁止扩散 第 2页, 共 22页
文档名称 文档密级 string name; cin >> i >> s >> f >> d >> name; cout << i << " " << s << " " << f << " " << d << " " << name << e ndl; } 这段代码恐怕比 scanf/printf 版本容易解释得多,而且没有安全性(security)方面的问题。 #include using namespace std; int main() { int number; cout << "输入一个整数: "; cin >> number; cout << "输入的数字为: " << number; return 0; } C++标准程序库中的所有标识符都被定义于一个名为 std 的 namespace 中。由于 namespace 的概念,使用 C++标准程序库的任何标识符时,可以有三种选择: 1、直接指定标识符。例如 std::ostream 而不是 ostream。完整语句如下: std::cout << std::hex<< 3.4<< std::endl; 2、使用 using 关键字。 2022-6-15 华为保密信息,未经授权禁止扩散 第 3页, 共 22页
文档密级 文档名称 using std::cout; using std::endl; 以上程序可以写成 cout << std::hex<< 3.4<< endl; 3、最方便的就是使用 using namespace std; 例如: #include #include using namespace std; 这样命名空间 std 内定义的所有标识符都有效(曝光)。就好像它们被声明为全局变量一样。那 么以上语句可以如下写: cout << hex<< 3.4<< endl; 2.2 字符串和字符处理 C 语言 C++ C++特有 一般一个 C++的老的带“.h”扩展名的库文件,比如 iostream.h,在新标准后的标准库中都有 一个不带“.h”扩展名的相对应,区别除了后者的好多改进之外,还有一点就是后者的东东都 塞进了“std”名字空间中。 但唯独 string 特别。 问题在于 C++要兼容 C 的标准库,而 C 的标准库里碰巧也已经有一个名字叫做“string.h” 的头文件,包含一些常用的 C 字符串处理函数,比如 strcmp。 这个头文件跟 C++的 string 类半点关系也没有,所以 并非 的“升级版 本”,他们是毫无关系的两个头文件。是旧的 C 头文件,对应的是基于 char*的字 符串处理函数; 是包装了 std 的 C++头文件,对应的是新的 string 类(看下 文); 是对应于旧 C 头文件的 std 版本。 语法: string(); 2022-6-15 华为保密信息,未经授权禁止扩散 第 4页, 共 22页
文档名称 文档密级 string( size_type length, char ch ); string( const char *str ); string( const char *str, size_type length ); string( string &str, size_type index, size_type length ); string( input_iterator start, input_iterator end ); 字符串的构造函数创建一个新字符串,包括:  以 length 为长度的 ch 的拷贝(即 length 个 ch)  以 str 为初值 (长度任意),  以 index 为索引开始的子串,长度为 length, 或者  以从 start 到 end 的元素为初值. 例如, string str1( 5, 'c' ); string str2( "Now is the time..." ); string str3( str2, 11, 4 ); cout << str1 << endl; cout << str2 << endl; cout << str3 << endl; 显示 ccccc Now is the time... time 2.2.1 操作符(Operators) 语法: == > < >= <= != + += [] 2022-6-15 华为保密信息,未经授权禁止扩散 第 5页, 共 22页
文档名称 文档密级 你可以用 ==, >, <, >=, <=, and !=比较字符串. 可以用 + 或者 += 操作符连 接两个字符串, 并且可以用[]获取特定的字符. 3 添加文本(append) 语法: basic_string &append( const basic_string &str ); basic_string &append( const char *str ); basic_string &append( const basic_string &str, size_type index, size_type len ); basic_string &append( const char *str, size_type num ); basic_string &append( size_type num, char ch ); basic_string &append( input_iterator start, input_iterator end ); append() 函数可以完成以下工作:  在字符串的末尾添加 str,  在字符串的末尾添加 str 的子串,子串以 index 索引开始,长度为 len  在字符串的末尾添加 str 中的 num 个字符,  在字符串的末尾添加 num 个字符 ch,  在字符串的末尾添加以迭代器 start 和 end 表示的字符序列. 例如以下代码: string str = "Hello World"; str.append( 10, '!' ); cout << str << endl; 显示 2022-6-15 华为保密信息,未经授权禁止扩散 第 6页, 共 22页
文档名称 Hello World!!!!!!!!!! 赋值(assign) 语法: 文档密级 basic_string &assign( const basic_string &str ); basic_string &assign( const char *str ); basic_string &assign( const char *str, size_type num ); basic_string &assign( const basic_string &str, size_type index, size_type len ); basic_string &assign( size_type num, char ch ); 函数以下列方式赋值: 用 str 为字符串赋值, 用 str 的开始 num 个字符为字符串赋值, 用 str 的子串为字符串赋值,子串以 index 索引开始,长度为 len 用 num 个字符 ch 为字符串赋值. 例如以下代码: string str1, str2 = "War and Peace"; str1.assign( str2, 4, 3 ); cout << str1 << endl; 2022-6-15 华为保密信息,未经授权禁止扩散 第 7页, 共 22页
文档名称 文档密级 显示 and at 语法: reference at( size_type index ); at()函数返回一个引用,指向在 index 位置的字符. 如果 index 不在字符串范围内, at() 将报告" out of range"错误,并抛出 out_of_range 异常。 比如下列代码: string text = "ABCDEF"; char ch = text.at( 2 ); 显示字符 'C'. 交换(swap) 语法: void swap( basic_string &str ); swap()函数把 str 和本字符串交换。例如: string first( "This comes first" ); string second( "And this is second" ); first.swap( second ); cout << first << endl; cout << second << endl; 显示: 2022-6-15 华为保密信息,未经授权禁止扩散 第 8页, 共 22页
分享到:
收藏