📜  C++示例 转换字符为数字(1)

📅  最后修改于: 2023-12-03 15:29:55.388000             🧑  作者: Mango

C++示例:转换字符为数字

在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_argumentstd::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

以上就是将字符转换为数字和将数字转换为字符的简单示例。需要注意的是,在实际开发中,需要根据具体的情况进行异常处理和数据类型的选择,并且需要注意数据类型的范围。