一 点睛

需要用到下面这一组函数。

long int strtol(const char *nptr, char **endptr, int base);                    //将参数nptr字符串根据参数base来转换成有符号的整型
long long int strtoll(const char *nptr, char **endptr, int base);              //将参数nptr字符串根据参数base来转换成有符号的长整型
unsigned long int strtoul(const char *nptr, char **endptr, int base);          //将参数nptr字符串根据参数base来转换成无符号整型
unsigned long long int strtoull(const char *nptr, char **endptr, int base);    //将参数nptr字符串根据参数base来转换成无符号长整型

使用说明

第一个参数 nptr是要转化的字符串。

第二个参数endptr可以为空,如果不为空,则 endptr 保存函数结束前的那个非合法字符的地址。如果没有合法字符,则 *endptr = nptr,函数返回0.

第三个参数base说明nptr的进制。base 取值范围 0,2-36。

这几个函数会忽略nptr前面的空格( ' ', '\t', '\n' '\f', '\v' '\r' ,由isspace判定为真的字符)。

二 实战

1 代码

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
int main(){char *endptr;char nptr[]="123abc";int ret = strtol(nptr, &endptr, 10 );cout<<"ret:"<<ret<<endl;cout<<"endptr:"<<endptr<<endl;char *endptr2;char nptr2[]=" \n\t    abc";ret = strtol(nptr2, &endptr2, 10 );cout<<"ret:"<<ret<<endl;cout<<"endptr2:"<<endptr2<<endl;char *endptr8;char nptr8[]="0123";ret = strtol(nptr8, &endptr8,0);cout<<"ret:"<<ret<<endl;cout<<"endptr8:"<<endptr8<<endl;   char *endptr16;char nptr16[]="0x123";ret = strtol(nptr16, &endptr16,0);cout<<"ret:"<<ret<<endl;cout<<"endptr16:"<<endptr16<<endl;  return 0;
}

2 运行

[root@localhost charpter03]# g++ 0307.cpp -o 0307
[root@localhost charpter03]# ./0307
ret:123
endptr:abc
ret:0
endptr2:abc
ret:83
endptr8:
ret:291
endptr16:

3 说明

当第3个参数为0时,则分以下3中情况进行处理:

第1种:如果nptr以0x开头,则把nptr当成16进制来处理。

第2种:如果nptr以0开头,则把nptr当成8进制来处理。

第3种:把nptr当成10进制。

C++string转int的方法相关推荐

  1. Linq中string转int的方法

    Linq中string转int的方法 在做批量删除时,需把一串id值所对应的数据删除,调试出现问题: Linq语句中如果使用ToString()进行类型转换,编译时不会报错,但执行时会出现如下错误: ...

  2. golang string转int8_Go教程:23 string转换int类型方法对比

    Go教程:23 string转换int类型方法对比 Go语言时一个强类型的语言,但是强类型的语言有也强类型的语言的烦恼.这个烦恼就是类型转换, 接下来我们就讲解一下怎么把 string 类型变量转换成 ...

  3. string转int的方法_Spark——scala 实用小方法

    这一阵刚刚接触scala,主要也是用在spark上~完全小白一个,看着Scala感觉与python很像,想着可能比较容易上手,结果--真是需要处理一个就得查一个啊,用python或Java很容易写出来 ...

  4. java string.indexof(string)_Java StringBuffer indexOf()方法

    Java StringBuffer indexOf()方法 java.lang.StringBuffer.indexOf(String str, int fromIndex) 方法返回此字符串指定的子 ...

  5. java indexof int,int indexOf(String str, int fromIndex)

    int indexOf(String str, int fromIndex) 描述 (Description) java.lang.String.indexOf(String str, int fro ...

  6. Java String到int,Java int到String

    Today we will look at Java String to int conversion and then java int to String conversion. Java pro ...

  7. 字符串右移n位,例如 “hello world“ 右移两位 后ldhello wor 要求写一个方法实现此功能,方法的格式是 String moveToRight(String str,int po

    字符串右移n位,例如 "hello world" 右移两位 后ldhello wor 要求写一个方法实现此功能,方法的格式是 String moveToRight(String s ...

  8. Java:字符串(String)类型转成整型(int)的方法

    在 Java 中,我们可以使用 Integer.parseInt() 或 Integer.valueOf() 将 String 转换为 int.Integer.parseInt() – 返回原始整数. ...

  9. String转int的两种方法转载

    平常使用Integer.ValueOf(String str)转换成Int类型的时候,都没注意是怎么转换的,今天就来研究一下. 最好别用ValueOf将String转换Int.可以使用Inetger. ...

最新文章

  1. DAS工具: 利用去重、聚合和评分的策略从宏基因组中恢复基因组
  2. Java 基础 之 三目运算
  3. php todo和其他备注,Vim中列出TODO与FIXME等备注的方法
  4. open cv提取图片特征值_基于VGG16网络提取Flicker8K数据集图像特征
  5. 关联查询的延迟加载是怎么实现的?
  6. Caffe2:python -m caffe2.python.operator_test.relu_op_test
  7. java云端部署_Jelastic Java云端平台
  8. 硬核干货,老曹解密“语音交互”背后的黑科技!
  9. 安装和部署企业程序库
  10. Unity UI和场景适配
  11. 数据结构---哈夫曼树的Java实现
  12. 局域网聊天服务器(openfire)安装与配置
  13. 【html和css入门】实现简单的页首导航
  14. SAP MM批次管理(1)物料与批次
  15. 现代信号处理——阵列信号处理(阵列信号的高分辨处理)
  16. 用Python和Pygame写游戏-从入门到精通(实战三:植物大战僵尸1)
  17. 笔记11-继承修饰符
  18. matlab中marker太密,Matlab画图时Marker过多的解决方法.pdf
  19. dll注入失败原因总结
  20. 计算机对人类发展历史的影响,【信息技术对人类社会发展有什么影响?】_人类 发展史_全球新能源网...

热门文章

  1. iphone11右上角信号显示_iPhone11一直显示正在搜索信号怎么办?iPhone11无信号的解决方法...
  2. js 遍历list对象
  3. Excel如何快速自定义序列排序
  4. labelme标注的json标签转txt格式
  5. 企业如何做到有效的防范勒索软件攻击?
  6. 视频怎么加水印?带你了解下怎么给视频加水印
  7. 百度大脑体检测与属性识别使用攻略
  8. 有关flexCell属性的设置
  9. 将MQTT收到的数据保存到MySQL数据库
  10. 聊聊如何度过寒冬(个人篇)