IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c/c++字符串转数字的库函数 -> 正文阅读

[C++知识库]c/c++字符串转数字的库函数

一.C库函数:

头文件:

? ? ? ? #include<stdlib.h>或#include<cstdlib>

1.1 char*转int/long:

????????long int strtol(const char *nptr, char **endptr, int base)

? ? ? ? 该函数将从nptr开始,跳过空格,找到'+','-'或者数字开始转换,直到找到第一个不合法字符为止。将这些数转化为long。如果nptr指向的字符串是非法字符串那么将无法转换。字符串可以没有'+','-'符号。? ? ? ??

????????第一个参数为需要转long的字符串,第二个参数一般设为NULL,不为空则endptr将得到第一个非法字符的地址。第三个参数表示进制,支持2-36进制。

? ? ? ? 非法字符判定与进制有关。如为2进制则合法字符为'0'-'1',十进制则为'0'-'9',十六进制为'0'-'9','a'-'f','A'-'F'。10+进制的字符串不区分大小写,即'a'与'A‘均合法。

? ? ? ? 不同的编译器long和int长度有区别。因此得到int值时有时需要考虑是否把返回的long结果转换。

? ? ? ? 例:

int a(0);
long b(0);
char str1[]="12345";
char str2[]="2A";
char str3[]="123 126";

//第二个参数为空的情况
a=(int)strtol(str1, NULL, 10);//a=12345
b=strtol(str2,NULL,16);//b=42

//第二个参数不为空,则我们可以如下使用
char* p=str3;
a=(int)strtol(p, (char**)&p, 10);//此时p指向str[3],值为空格。a=123

b=strtol(p,(char**)&p,10);//自动跳过空格。b=126
//这样可以得到两个数。如果字符串里面数字过多可以加循环

?1.2?char*转float/double:

? ? ? ? char*转float:

????????????????float?strtol(const char *nptr, char **endptr);

? ? ? ? char*转double:

? ? ? ? ? ? ? ? double?strtod(const char *nptr, char **endptr);

? ? ? ? 与1.1相比,这两个函数只支持10进制。其它与1.1基本相同,用法相似。

? ? ? ? 例:

? ? ? ?

float a(0);
double b(0);
char str1[]="123.45";
char str2[]="123.12 126.21";

//第二个参数为空的情况
a=strtof(str1, NULL);//a=123.45
b=strtod(str2,NULL);//b=123.45

//第二个参数不为空,则我们可以如下使用
char* p=str3;
a=strtof(p, (char**)&p);//a=123.12

b=strtod(p,(char**)&p);//b=126.21

1.3 其它转换:

? ? ? ? 标准库支持char*转long long,long double等。也有相应函数,用法与这些相似。

? ? ? ? 转化为long long为strtoll,转化为long double为strtold。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-25 07:56:38  更:2021-11-25 07:58:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:01:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码