c/c++再学习:常用字符串转数字操作

能实现字符串转数字有三种方法,atof函数,sscanf函数和stringstream类。

具体demo代码和运行结果

#include "stdio.h"
#include <iostream>
#include <>
int main()
{
printf("字符串转数字:stof()函数 string转单精度浮点数\n");
std::string stof_str("686.123456789123456");
float stof_val = std::stof(stof_str);
printf("stof_val=%.9f\n", stof_val); printf("字符串转数字:stod()函数 string转双精度浮点数\n");
std::string stod_str("686.123456789123456");
double stod_val = std::stod(stod_str);
printf("stod_val=%.9f\n", stod_val); printf("字符串转数字:atof()函数\n");
char* atof_str = "123.123456789123456";
double atof_val = atof(atof_str);
printf("atof_val=%.9f\n", atof_val); printf("字符串转数字:sscanf()函数\n"); char* strInt = "123456789";
int strInt_num = 0;
sscanf(strInt, "%d", &strInt_num);
printf("strInt_num=%d\n", strInt_num); char* strLong = "1234567890123456789";
long long strLong_num = 0;
sscanf(strLong, "%lld", &strLong_num);
printf("strLong_num=%lld\n", strLong_num); char* strFloat = "1.23456789";
float strFloat_num = 0.0;
sscanf(strFloat, "%f", &strFloat_num);
printf("strFloat_num=%f\n", strFloat_num); char* strDouble = "1.23456789";
double strDouble_num = 0.0;
sscanf(strDouble, "%lf", &strDouble_num);
printf("strDouble_num=%.8lf\n", strDouble_num); printf("字符串转数字:stringstream类\n"); stringstream ss; ss.clear();
printf("stringstream precision=%d\n", ss.precision());
string string_val1 = "1234567890";
int val1 = 0;
ss.str(string_val1);
ss >> val1;
printf("val1=%d\n", val1); ss.clear();
string string_val2 = "1.234567890123456789";
double val2 = 0;
ss.str(string_val2);
ss >> val2;
printf("val2=%.9f\n", val2); }

运行结果

字符串转数字:stof()函数 string转单精度浮点数

stof_val=686.123474121

字符串转数字:stod()函数 string转双精度浮点数

stod_val=686.123456789

字符串转数字:atof()函数

atof_val=123.123456789

字符串转数字:sscanf()函数

strInt_num=123456789

strLong_num=1234567890123456789

strFloat_num=1.234568

strDouble_num=1.23456789

字符串转数字:stringstream类

stringstream precision=6

val1=1234567890

val2=1.234567890

c/c++再学习:常用字符串转数字操作的更多相关文章

  1. 坑之mysql 字符串与数字操作

    select "123"+1 = 124; select "1a23"+1 = 2; select "aa23"+1 = 1; select ...

  2. ios 常用字符串NSString的操作

    //将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8S ...

  3. python基础学习一 字符串的相关操作

    python的字符串 在python中,字符串是以unicode编码的,所以python的字符串支持多语言 对于单个字符的编码,python提供了ord()函数获取字符的整数表示,chr()函数是把编 ...

  4. [Python学习笔记] 字符串类型及操作

    字符串处理 索引:返回字符串中单个字符 <字符串>[M] 切片:返回字符串中一段字符子串 <字符串>[M:N:K] 字符串格式化使用.format()方法

  5. 学习pytho第l六天 常用字符串用法

    name='my name is dream' print(name.capitalize())#首字母大写 print(name.count(‘’a‘’))#判断字符串里有多少个a print(na ...

  6. Python学习之==>常用字符串方法

    1.常用字符串方法 a = '\n 字 符 串 \n\n' b = a.strip() # 默认去掉字符串两边的空格和换行符 c = a.lstrip() # 默认去掉字符串左边的空格和换行符 d = ...

  7. (数据科学学习手札131)pandas中的常用字符串处理方法总结

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在日常开展数据分析的过程中,我们经常需要对 ...

  8. Java学习之==>常用字符串方法

    1.定义字符串 // 定义, 为初始化 String str1; // 定义, 并初始化为null String str2 = null; // 定义, 并初始化为空串 String str3 = & ...

  9. C语言字符串与数字相互转换

    在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...

随机推荐

  1. 详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解

    转载声明:本文为转载文章,发表于nebulaf91的csdn博客.欢迎转载,但请务必保留本信息,注明文章出处. 原文作者: nebulaf91 原文原始地址:http://blog.csdn.net/ ...

  2. 在centos 7 下安装 nginx

    在Linux下安装 nginx 1下载对应当前系统版本的nginx包(package) wget  http://nginx.org/packages/centos/7/noarch/RPMS/ngi ...

  3. MFC:编辑区 Edit 的属性及使用

    Edit Control 编辑控件是 MFC 中使用较多的控件之一 1. Edit 的属性 Acccept Files -> True 控件接受拖放文件 Multiline -> True ...

  4. 用js提取字符串中的某一段字符

    String.prototype.getQuery = function(name){var reg = new RegExp("(^|&)"+ name +"= ...

  5. PHP开发要点与技巧总结(二)

    1 == 'a'.0 == 'a'.97 == '97a'?这里边牵涉到的是默认数据类型转换. // 无输出 if ('0') { echo "'0' is true\n"; } ...

  6. 怎么解决docker pull拉取镜像速度过慢的问题

    在我们安装了docker之后,在利用docker pull下载镜像的时候,由于国内的源会出现的问题就是速度真的很慢,可以用龟速来形容,最痛苦的是当你耐心的等待几个小时之后,出现unexpected E ...

  7. MUI框架 按钮点击响应不好的问题解决办法

    MUI框架 按钮点击响应不好的问题 实际例子: $(function (){ mui(document.body).on('tap', '.bindchk', function(e) { //触发一次 ...

  8. git 本地项目推到远程仓库

    …or create a new repository on the command line echo "# blog" >> README.mdgit initgi ...

  9. Storage 002 电商数据库设计

    [用户模块] 账户登录:邮箱/用户名/已验证手机 密码 如果将所有字段都放到一张表里存储? 数据插入异常        只想插入一个值的  由于需要主键信息,插入的一行变成新的一行,和原来的记录无关. ...

  10. asp.net webapi 获取报文体的问题

    用这种方法: var data=await Request.Content.ReadAsStringAsync(); 一般都无法获取到内容.原因是内部的流对象已经到了最后面.要获取到里面的需要把流的位 ...