字符串转数字

C

<stdlib.h> in C
<cstdlib> in C++

C有两个转换函数:

  • atoi
  • strtol
    这两个函数都不会出异常 只会执行到出错位置后返回当前结果 默认结果为0

atoi

int atoi (const char * str);

只能转换10进制的数字字符串为数字

#include <iostream>int main(){printf("%d %d %d\n",atoi("1000"),atoi("a1000"),atoi("100a0"));return 0;
}

结果

1000 0 100

strtol

long int strtol (const char* str, char** endptr, int base);

参数
str 数字字符串
endptr 指向数字解析完后的地址(下一位)可为NULL
base 进制[2,36]
#include <iostream>int main(){char *end;const char*s = "0x1000";const char*sp="10a3";printf("%d ",strtol(s,&end,16));printf("[end]:%d\n",end-s);printf("%d ",strtol(sp,&end,10));printf("[end]:%d\n",end-sp);return 0;
}

输出

4096 [end]:6
10 [end]:2

cpp stoi

<string>

int stoi (const string&  str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);

idx 参数与strtol的 endptr 参数作用相同 都是指向数字解析完的下一位 可为nullptr

如果base为0 则进制由字符串格式决定

#include <iostream>
#include <string>int main(){std::string str_dec = "2001, A Space Odyssey";std::string str_hex = "40c3";std::string str_bin = "-10010110001";std::string str_auto = "0x7f";std::string::size_type sz;   // alias of size_tint i_dec = std::stoi (str_dec,&sz);int i_hex = std::stoi (str_hex,nullptr,16);int i_bin = std::stoi (str_bin,nullptr,2);int i_auto = std::stoi (str_auto,nullptr,0); // 16进制std::cout << str_dec << ": " << i_dec << " and [" << str_dec.substr(sz) << "]\n";std::cout << str_hex << ": " << i_hex << '\n';std::cout << str_bin << ": " << i_bin << '\n';std::cout << str_auto << ": " << i_auto << '\n';return 0;
}

结果为

2001, A Space Odyssey: 2001 and [, A Space Odyssey]
40c3: 16579
-10010110001: -1201
0x7f: 127

参考

  • atoi
  • strtol
  • stoi

C/C++ 字符串转数字相关推荐

  1. python字符串拼接数字_python字符串和数值操作函数大全(非常全)

    字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\'的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1 ...

  2. iOS 改变字符串中数字的颜色

    匹配中文字符 [\u4e00-\u9fa5] 匹配双字节字符(包括汉字在内) [^\x00-\xff] 匹配网址:[a-zA-z]+://[^\s]* 匹配国内电话 \d{3}-\d{8}|\d{4} ...

  3. SCRIPT1028:缺少标识符、字符串或数字 jquery ajax

    2019独角兽企业重金招聘Python工程师标准>>> SCRIPT1028:缺少标识符.字符串或数字 使用jquery时报此错误 究其原因是对象键值对格式错误: 原格式:   多了 ...

  4. pandas使用read_csv读取文件数据、设置converters参数将百分比字符串转换为数字

    pandas使用read_csv读取文件数据.设置converters参数将百分比字符串转换为数字 目录 pandas使用read_csv读取文件数据.设置converters参数将百分比字符串转换为 ...

  5. C/C++中字符串与数字之间的转换

    主要有两种方式:C 中能够使用 sprintf 将数字转为字符数组,sscanf 将字符数组转为数字:而在 C++ 中不仅能够使用 C 中的方法,还能够使用 stringstream 实现字符串与数字 ...

  6. 如何用计算机猜数字,杭电2010计算机复试笔试题 2道acm简单题(2010):1.猜数字游戏;2.字符串提取数字并求和;...

    //第一题是猜数字的游戏. //题目:随即产生一个3位的正整数,让你进行猜数字, //如果猜小了,输出:"猜小了,请继续". //如果猜大了,输出:"猜大了,请继续&qu ...

  7. js 判断是不是数字||判断字符串是不是数字(正则表达式)

    js使用正则表达式判断对象是不是数字,或者字符串是不是数字,或者是不是数字类型 1 //判断是不是一个数字 或者 一个字符串里全是数字 2 isNumber (value) { 3 if (value ...

  8. 判断字符串是不是数字

    在网上看到一篇关于判断字符串是数字的函数, 感觉思路不错, 代码简洁, 我转载一下: 代码 public static bool isnum(string xtext) //判断字符串是不是数字    ...

  9. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

  10. Swift3.0语言教程字符串转换为数字值

    Swift3.0语言教程字符串转换为数字值 Swift3.0语言教程字符串转换为数字值,在NSString中,开发者可以将字符串转换为数字值,通过这些数字值可以实现一些功能,如加法运算.减法运算等.数 ...

最新文章

  1. 波士顿动力副总裁:机器人一天就学会了芭蕾舞,尚未使用机器学习技术
  2. Java集合(一)、什么是Java集合?
  3. linux设备驱动学习,linux设备驱动学习4
  4. hihoCoder #1143 : 骨牌覆盖问题·一
  5. “宅家十大热销商品”榜单:确认过眼神,都是自己剪头发的人
  6. Docker Compose安装以及入门
  7. 华为v3鸿蒙系统_重磅!华为鸿蒙系统问世!
  8. 无人驾驶智能车竞速赛,智能大会无人驾驶比赛
  9. paddle 图标注_SPC控制图应用步骤
  10. D - Daydreaming Stockbroker Gym - 101550D
  11. vue项目AES密码加密解密
  12. 后台管理系统之用JQuery-validate做表单验证
  13. 江西计算机竞赛有哪些,江西自主招生认可的竞赛有哪些
  14. JAVA常用数据结构
  15. luogu P2015 二叉苹果树
  16. 史上最全RabbitMq详解
  17. AndroidStudio系统广播Broadcast电话监听
  18. python商品打折问题_利用Python“解剖”双11商家打折套路
  19. 【项目管理工具】Jira使用和配置
  20. Sublime Text 3103 Crack 破解 注册码

热门文章

  1. java 乘号源码_java如何将字符型*转化为乘号
  2. Windows 7操作系统设定密码策略和账户锁定策略
  3. 01型背包问题解题总结(二维)
  4. 【5000左右电脑配置清单】预算不高于5000,不带显示器的电脑配置清单推荐
  5. 贴牌系统(SaaS)与定制开发的区别是什么?
  6. 数据处理实例—共享单车数据处理
  7. 解决Linux下Java生成中文文件和文件夹乱码
  8. 【动画展示】Focusky教程 | 自定义动画运动路径
  9. android studio实现壁纸
  10. 如何简单快速复制网页上的文字?