首页 > 编程语言 >C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)

C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)

时间:2022-09-06 10:11:25浏览次数:89  
标签:idx int stoull long base stoul str size C++

1、C/C++:long int与long long的区别

在实际的使用中,long与int几乎没有区别:原因是早期的C编译器定义了long int占用4个字节,int占用2个字节,long int是名副其实的长整型。在ANSI C的标准中,对长整型的定义也是long int应该至少和int一样长,而不是long int 一定要比int占用存储字节长。

2、stoi

int stoi (const string&  str, size_t* idx = 0, int base = 10);
int stoi (const wstring& str, size_t* idx = 0, int base = 10);
  1. 将字符串转换为整数

    解析str将其内容解释为指定基数的整数,并以int值的形式返回。

    如果idx不是空指针,则该函数还将idx的值设置为数字后str中第一个字符的位置。

    该函数使用strtol(或wcstol)来执行转换(有关该过程的更多详细信息,请参阅strtol)

  2. 参数

    str:字符串对象,表示整数。
    idx:指向size_t类型对象的指针,其值由函数设置为数值后str中下一个字符的位置。此参数也可以是空指针,在这种情况下不使用它。
    base:确定有效字符及其解释的数字基数(基数)。如果为0,则使用的基数由序列中的格式确定(有关详细信息,请参阅strtol)。 请注意,默认情况下,此参数为10,而不是0。

    参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。

  3. 返回值

    成功时,该函数将转换后的整数作为int值返回。

注意:转化过程种容易出现错误导致程序崩溃。最好加上异常处理
如果无法执行转换,则抛出invalid_argument异常。
如果读取的值超出int的可表示值范围,则抛出out_of_range异常。
无效的idx会导致未定义的行为。

3、stol

解析str将其内容解释为指定基数的整数,并以long int类型的值返回。

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

4、stoul

解析str将其内容解释为指定基数的整数,该基数作为无符号长整数值返回。

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

5、stoll

解析str将其内容解释为指定基数的整数,并将其作为long long类型的值返回。

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

6、stoull

解析str将其内容解释为指定基数的整数,该值作为unsigned long long类型的值返回。

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

7、stof

解析str将其内容解释为浮点数,该值作为float类型返回。

float stof (const string&  str, size_t* idx = 0);
float stof (const wstring& str, size_t* idx = 0);

8、stod

解析str将其内容解释为浮点数,该值返回为double类型的值。

double stod (const string&  str, size_t* idx = 0);
double stod (const wstring& str, size_t* idx = 0);

9、stold

将字符串转换为long double

long double stold (const string&  str, size_t* idx = 0);
long double stold (const wstring& str, size_t* idx = 0);

参考:(9条消息) C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)_WilliamX2020的博客-CSDN博客_stoul

标签:idx,int,stoull,long,base,stoul,str,size,C++
From: https://www.cnblogs.com/hiccuplh/p/16660779.html

相关文章

  • C++面向对象-构造函数与析构函数
    以OOP实现一个顺序栈为例,介绍构造函数与析构函数#include<iostream>#include<iterator>usingnamespacestd;/*构造函数和析构函数函数的名字和类名一样,......
  • C++数据结构课程设计
    C++数据结构课程设计《数据结构》课程设计指导书一、课程设计的目的课程设计为学生提供了一个独立实践的机会,将课本上的理论知识和实际问题结合起来,锻炼学生分析、解决......
  • C++11~C++20 新基础类型
    目录整数类型longlong(C++11)字符类型char16_t和char32_t(C++11)C++11为什么要引入char16_t和char32_t?字符类型char8_t(C++20)参考资料整数类型longlong(C++11)C++1......
  • C++基础入门:C++初始
    1.C++环境:Clion搭建下载链接:clion官方网址1.1点击下载1.2下载对应版本1.3安装步骤:1.3.1下载完毕后,打开exe文件,进入安装界面,点击【Next>】1.3.2选择安装目录......
  • 如何高效解决 C++内存问题,Apache Doris 实践之路|技术解析
    导读:ApacheDoris使用C++语言实现了执行引擎,C++开发过程中,影响开发效率的一个重要因素是指针的使用,包括非法访问、泄露、强制类型转换等。本文将会通过对Sanitizer......
  • leetcode 6356 最长回文子串长度,最长回文子串 C/C++ 动态规划方案 同样的用例,测试执
    对dp变量需要执行初始化,否者LeetCode会出现同样的用例,单独执行可以通过,提交代码执行不通过的情况。 下面是找最长回文串的动态规划代码。class Solution {public:......
  • 青少年C++编程CSP/NOIP
    C++基础篇C++算法篇数据结构&算法深入信息学竞赛初赛篇信息学竞赛复赛篇信息学等级考试篇C++提高篇https://study.163.com/series/1202896601.htm?inLoc=android_ss_ssjg&u......
  • Qt-C2429:语言功能"嵌套命名空间定义"需要编译器标志"/std:c++latest"
     问题现象:今天早上在给同事讲代码时,打开工程,发现之前可以编译的工程,在未修改代码,未修改SDK的情况下,无法编译。并且提示如下:C2429:语言功能"嵌套命名空间定义"需要编译器......
  • C++中#ifdef和#endif的用法
    一般情况下,源程序中所有的代码都会参与编译。但有时希望对其中一部分内容只在满足一定条件时才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。条件编......
  • Source Insight导入C++标准库符号
    1、对GNUC++头文件一般放在/user/include目录下。本环境是在/usr/include/c++/9目录下,其它环境类似。2、拷贝此目录到本地,用于创建工程。3、打开SourceInsight,以此目录......