提示信息

C/C++数字与字符串的相互转换方法

漫游控 已关注

在C/C++中,数字和字符串之间的转换是一个常见的任务。以下是一些常用的方法来实现这种转换:

从数字转换为字符串

  1. std::to_string (C++11 及以上)

    • 这是C++标准库提供的简便方法。
    1. int num = 123;
    2. std::string str = std::to_string(num);
  2. std::ostringstream

    • 使用输出字符串流将数字格式化为字符串。
    1. #include <sstream>
    2. int num = 123;
    3. std::ostringstream oss;
    4. oss << num;
    5. std::string str = oss.str();
  3. sprintf (C语言风格)

    • 使用stdio.h中的sprintf函数。
    1. #include <cstdio>
    2. int num = 123;
    3. char buffer[20];
    4. sprintf(buffer, "%d", num);
    5. std::string str(buffer);

从字符串转换为数字

  1. std::stoi, std::stol, std::stoll, std::stof, std::stod, std::stold (C++11 及以上)

    • 这些函数可以将字符串转换为不同类型的数字。
    1. std::string str = "123";
    2. int num = std::stoi(str);
  2. std::stringstream

    • 使用输入字符串流将字符串解析为数字。
    1. #include <sstream>
    2. std::string str = "123";
    3. int num;
    4. std::istringstream iss(str);
    5. iss >> num;
  3. atoi, atol, atof (C语言风格)

    • 来自cstdlib,这些函数可以将C风格字符串转换为整数或浮点数。
    1. #include <cstdlib>
    2. const char* cstr = "123";
    3. int num = atoi(cstr);

注意事项

  • 使用std::stoi和相关函数时,需要处理可能抛出的异常,例如std::invalid_argumentstd::out_of_range
  • atoi等C式转换函数不会抛出异常,但如果转换失败,它们通常返回0,这可能会隐藏错误。

这些方法应该涵盖了大多数数字与字符串之间相互转换的需求。选择具体方法时,考虑代码的可读性、异常处理需求和所用的C++标准版本。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
漫游控 关注 已关注

最近一次登录:2024-11-19 20:19:42   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图