C++初始标准库

C++标准库包括通用函数库和面向对象类库,提供输入输出、字符串处理等功能。C++中的字符串类通过string类型解决C语言的遗留问题,支持连接、比较、查找、替换等操作,并可通过sstream类实现字符串与数字的转换。

C++初始标准库

  • 标准函数库
    • 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自C语言
    • 标准库的分类
      • 输入输出
      • 字符串和字符处理
      • 数学
      • 时间、日期和本地化
      • 动态分配
      • 宽字符函数
  • 面向对象类库
    • 这个库是类及其相关函数的集合
    • 面向对象类库
      • 标准的C++ I/O类
      • String类
      • 数组类
      • STL算法
      • STL函数对象
      • STL容器类
      • STL迭代器
      • STL分配器
      • 本地化库
      • 异常处理类
      • 杂项支持库

标准库的简介

  • C++标准库并不是C++语言的一部分
  • C++标准库是由类库和函数库组成的集合
  • C++标准库中定义的类和对象都位于std命名空间
  • C++标准库的头文件都不带.h后缀
  • C++标准库涵盖了C库的功能

C++编译环境的组成

  • C++标准库
  • C语言兼容库
  • 编译器扩展器
  • 编译模板
    • C++标准库语法模板
    • C++扩展语法模板

C++中的字符串类

C语言历史遗留问题
  • C语言不支持真正意义上的字符串
  • C语言用字符数组和一组函数实现字符串操作
  • C语言不支持自定义类型,因此无法获得字符串类型
解决方案
  • 从C到C++的进化过程引入了自定义类型
  • 在C++中可以通过类完成字符串类型的定义
标准库中的字符串类
  • C++语言直接支持C语言的所有概念
  • C++语言中没有原生的字符串类型

  • C++标准库提供了string类型
    • string直接支持字符串连接
    • string直接支持字符串的大小比较
    • string直接支持子串查找和提取
    • string直接支持字符串的插入和替换
字符串与数字的转换
  • 标准库中提供了相关的类对字符串和数字进行转换
  • 字符串流类(sstream)用于string的转换
    • - 相关头文件
    • istringstream - 字符串输入流
    • ostringstream - 字符串输出流

使用方法

  • string -> 数字
istringstream iss(123.45);
double num;
iss >> num;
  • 数字 -> string
ostringstream oss;
oss << 533.213;
string s = oss.str();
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

#define TO_NUMBER(s,n) (istringstream(s) >> n)
#define TO_STRING(n) (((ostringstream&)(ostringstream()<<n)).str())

int main(int argc, char const *argv[])
{
    double n;
    if(TO_NUMBER("124.5",n))
    {
        cout << n << endl;
    }
    cout << TO_STRING(5.20) << endl;
    return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值