C++ int转string的几种方法比较

一、itoa函数(Windows)

非C/C++标准,可移植性不好

// Windows
#include <string> // string, sprintf
//#include <cstdlib>
using namespace std;

int main() {
    int n=100;
    char ch[10];
    _itoa(n, ch, 10); //10表示十进制,vs2017使用_itoa,其他环境可能使用itoa
    
    //下面把char*转成string
    string str(ch, ch+strlen(ch));

    return 0;
}

二、std::to_string()

#include <string> // string, std::to_string
using namespace std;

int main(){
    int n=100;
    string str=to_string(n);

    return 0;
}

三、借助stringstream

缺点:慢。

#include <sstream> //stringstream
#include <string> //string
using namespace std;

int main(){
    stringstream ss;
    string str;
    int n=100;
    ss<<n;
    ss>>str;

    return 0;
}

四、C库函数sprintf()

优点:可以转换各种进制的数。

缺点:需要先分配足够的char数组。

#include <string> // string, sprintf
#include <cstring> // strlen(linux)
using namespace std;

int main() {
	int n = 100;
	char ch[10];
	sprintf(ch, "%d", n);

	//下面把char*转成string
	string str(ch, ch + strlen(ch));

	//printf("%s\n",str.c_str());

	return 0;
}

 

  • 27
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
C++中,有几种方法可以将int类型换为string类型。 一种方法是使用C++标准库中的std::to_string()函数。这个函数可以将一个整数换为对应的字符串表示。例如,下面的代码将一个整数n换为字符串str: ```cpp int n = 123; std::string str = std::to_string(n); ``` \[1\] 另一种方法是使用C++标准库中的std::stringstream类。这个类可以将各种类型的数据换为字符串。下面的代码演示了如何使用std::stringstream将一个整数i换为字符串: ```cpp #include <sstream> #include <iostream> int main() { int i = 123; std::stringstream ss; ss << i; std::string out_string = ss.str(); std::cout << out_string << "\n"; return 0; } ``` \[3\] 还有一种方法是使用C语言风格的函数,如atoi()。这个函数可以将一个字符串换为对应的整数。例如,下面的代码将一个字符串s换为整数并加1: ```cpp #include <iostream> #include <string> int main() { int i = 10; std::string s = "123"; std::cout << "int_str: " + std::to_string(i) << std::endl; std::cout << "string_int: " << atoi(s.c_str()) + 1 << std::endl; return 0; } ``` \[2\] 这些方法都可以将int类型换为string类型,你可以根据自己的需求选择其中一种方法来使用。 #### 引用[.reference_title] - *1* *3* [C++ int换为string](https://blog.csdn.net/yao_zhuang/article/details/112450802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C++ intstring相互换](https://blog.csdn.net/wangcheng_BI/article/details/124363001)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值