C/C++中string和int相互转换的常用方法

本文详细介绍了C++和C中字符串与整型转换的多种方法,包括C++11的std::stoi和std::to_string,以及C++的stringstream和C语言中的sprintf和atoi函数,为开发者提供了灵活且基础的转换手段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在C++编程中,经常需要在字符串(string)和整型(int)之间进行转换。本文将详细介绍几种在C和C++中实现这两种类型转换的常用方法。值得注意的是,虽然C++提供了更现代的方法,但了解C语言中的方法仍然有助于更好地理解底层实现和跨语言编程。

C++中的转换方法

1. std::stoistd::to_string

C++11标准引入了一些方便的函数来处理这些转换。

  • String to Int: 使用std::stoi函数可以将string转换为int
  • Int to String: 使用std::to_string函数可以将int转换为string
示例代码:
#include <iostream>
#include <string>

using namespace std;

int main() {
    // String to Int
    string str = "12345";
    int num = stoi(str);
    cout << "String to Int: " << num << endl;

    // Int to String
    int num2 = 67890;
    string str2 = to_string(num2);
    cout << "Int to String: " << str2 << endl;

    return 0;
}

2. stringstream

stringstream是C++中处理字符串的另一种强大工具,它可以实现复杂的字符串和其他数据类型之间的转换。

示例代码
#include <iostream>
#include <sstream>
#include <string>

using namespace std;

int main() {
    // String to Int
    string str = "12345";
    stringstream ss(str);
    int num;
    ss >> num;
    cout << "String to Int: " << num << endl;

    // Int to String
    int num2 = 67890;
    stringstream ss2;
    ss2 << num2;
    string str2 = ss2.str();
    cout << "Int to String: " << str2 << endl;

    return 0;
}

C中的转换方法

在C语言中,处理字符串和整数之间的转换需要更多的工作,因为C标准库中没有像C++那样的直接转换函数。

1. sprintfatoi

  • Int to String: 使用sprintf函数,它是C标准库中的一部分。
  • String to Int: 使用atoi函数将字符串转换为整数。

示例代码

#include <stdio.h>
#include <stdlib.h>

int main() {
    // String to Int
    char str[] = "12345";
    int num = atoi(str);
    printf("String to Int: %d\n", num);

    // Int to String
    int num2 = 67890;
    char str2[20];
    sprintf(str2, "%d", num2);
    printf("Int to String: %s\n", str2);

    return 0;
}

结论

在C++中,std::stoistd::to_string提供了一种简单而现代的方式来实现字符串和整数之间的转换。对于需要更多灵活性的场景,stringstream是一个很好的选择。而在C语言中,我们通常依赖于sprintfatoi函数来实现类似的功能。虽然这些方法在语法上更为繁琐,但它们为字符串和整数之间的转换提供了基本的解决方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值