C++ 数字类型和字符串类型互转详解
本文将详细介绍C++语言中数字类型和字符串类型之间的互转方法,涉及以下内容:
- 数据类型概述
- 数字类型转字符串类型
- 字符串类型转数字类型
- 代码示例
1. 数据类型概述
在C++中,数字类型分为整型、浮点型等多种。
常用的有:
- 整型:int、long、short、char
- 浮点型:float、double
字符串类型即为字符数组,以'\0'结尾。
2. 数字类型转字符串类型
数字类型转字符串类型的方法有多种,以下为常用方法:
// 1. 使用stringstream将数字转为字符串
#include <sstream>
#include <string>
int num = 1234;
std::stringstream ss;
ss << num;
std::string str = ss.str();
// 2. 使用to_string函数将数字转为字符串
std::string str2 = std::to_string(num);
// 3. 使用sprintf函数将数字转为字符串
char buf[10]; // 注意缓冲区要足够大
sprintf(buf, "%d", num);
std::string str3(buf);
3. 字符串类型转数字类型
字符串类型转数字类型的方法也有多种,以下为常用方法:
// 1. 使用stringstream将字符串转为数字
#include <sstream>
#include <string>
std::string str = "1234";
std::stringstream ss(str);
int num;
ss >> num;
// 2. 使用stoi函数将字符串转为数字
int num2 = std::stoi(str);
// 3. 使用sscanf函数将字符串转为数字
int num3;
sscanf(str.c_str(),"%d",&num3);
4. 代码示例
示例一:数字类型转字符串类型
#include <iostream>
#include <sstream>
#include <string>
int main() {
int num = 1234;
// 方法一
std::stringstream ss;
ss << num;
std::string str = ss.str();
std::cout << "Method 1: num to str: " << str << std::endl;
// 方法二
std::string str2 = std::to_string(num);
std::cout << "Method 2: num to str: " << str2 << std::endl;
// 方法三
char buf[10];
sprintf(buf, "%d", num);
std::string str3(buf);
std::cout << "Method 3: num to str: " << str3 << std::endl;
return 0;
}
输出:
Method 1: num to str: 1234
Method 2: num to str: 1234
Method 3: num to str: 1234
示例二:字符串类型转数字类型
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string str = "1234";
// 方法一
std::stringstream ss(str);
int num;
ss >> num;
std::cout << "Method 1: str to num: " << num << std::endl;
// 方法二
int num2 = std::stoi(str);
std::cout << "Method 2: str to num: " << num2 << std::endl;
// 方法三
int num3;
sscanf(str.c_str(),"%d",&num3);
std::cout << "Method 3: str to num: " << num3 << std::endl;
return 0;
}
输出:
Method 1: str to num: 1234
Method 2: str to num: 1234
Method 3: str to num: 1234
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++ 数字类型和字符串类型互转详解 - Python技术站