📅  最后修改于: 2023-12-03 15:29:55.388000             🧑  作者: Mango
在C++中,我们经常需要将字符类型的数值转换为数字类型,方便进行数值操作。本篇文章将介绍如何使用C++进行字符和数字之间的转换。
C++提供了 std::stoi()
函数,可以将包含数字的字符串转换为数字类型(整型或浮点型)。该函数的原型如下:
int stoi (const string& str, size_t* idx = 0, int base = 10);
其中,str
参数是需要转换的字符串,idx
参数是指向一个 size_t
类型的指针,用来存储转换过程中的停止位置(如果转换失败,则停止位置为转换前的起始位置)。base
参数是数字的进制,可以是 2、8、10 或 16,如果不指定,则默认为 10。
以下是一个简单的示例,将一个数字字符串转换为整型:
#include <iostream>
#include <string>
int main()
{
std::string str = "123";
int num = std::stoi(str); // 将字符串转换为整型
std::cout << "The number is: " << num << std::endl;
return 0;
}
输出结果:
The number is: 123
需要注意的是,如果字符串中包含非数字字符,将会导致转换失败,抛出 std::invalid_argument
或 std::out_of_range
异常。因此,在使用 std::stoi()
函数时,需要进行异常处理。
C++提供了 std::to_string()
函数,可以将数字类型的数值转换为字符串类型。该函数的原型如下:
std::string to_string (int val);
其中,val
参数是需要转换的数字。
以下是一个简单的示例,将一个整型转换为字符串:
#include <iostream>
#include <string>
int main()
{
int num = 123;
std::string str = std::to_string(num); // 将整型转换为字符串
std::cout << "The string is: " << str << std::endl;
return 0;
}
输出结果:
The string is: 123
需要注意的是,如果需要将非整型的数字转换为字符串,需要使用 std::stringstream
流输出。以下是一个将浮点型转换为字符串的示例:
#include <iostream>
#include <string>
#include <sstream>
#include <iomanip>
int main()
{
double num = 3.1415926;
std::stringstream ss;
ss << std::fixed << std::setprecision(2) << num;
std::string str = ss.str(); // 将浮点型转换为字符串
std::cout << "The string is: " << str << std::endl;
return 0;
}
输出结果:
The string is: 3.14
以上就是将字符转换为数字和将数字转换为字符的简单示例。需要注意的是,在实际开发中,需要根据具体的情况进行异常处理和数据类型的选择,并且需要注意数据类型的范围。