• C++ 中 int 与string相互转换


    int -->  string

    1.使用itoa()函数

    将任意类型的数字变量转换为字串子变量。

    #include<stdio.h>
    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int a= 123;
        char str[20] ;
        itoa(a,str,10);
        cout<<str<<endl;
        return 0;
    }

    缺点:它是一个非标准的C / C++语言功能,因此不能好好的被所有编译器使用

    2.使用sprintf转化

    主要功能是把格式化的数据写入某个字符串中

    原型

    int sprintf( char *buffer, const char *format, [ argument] … );
     

    参数列表

    buffer:char型指针,指向将要写入的字符串的缓冲区。
    format:格式化字符串。
    [argument]...:可选参数,可以是任何类型的数据。
    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<string>
    using namespace std;
    int main()
    {
        int a= 123;
        char str[20] ;    
        sprintf(str,"%d",a);
        cout<<str<<endl;
        return 0;
    }

    2.使用to_string()函数

    这个函数是C++11.0新增的

    string to_string (int val);
    string to_string (long val);
    string to_string (long long val);
    string to_string (unsigned val);
    string to_string (unsigned long val);
    string to_string (unsigned long long val);
    string to_string (float val);
    string to_string (double val);
    string to_string (long double val)

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int a = 123;
        string str = to_string(a);
        cout<<a<<endl;
    }

    string   -->  int

    1.使用atoi函数

    (表示 ascii to integer)是把字符串转换成整型数的一个函数

    int atoi(const char *nptr);

    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<string>
    using namespace std;
    int main()
    {
        
        char str[20] = "123";
        int num = atoi(str);
        cout<<num<<endl;
        return 0;
    }

    2.使用strtol函数

    long int strtol(const char *nptr,char **endptr,int base);

    #include<stdio.h>
    #include<iostream>
    #include<cmath>
    #include<string>
    using namespace std;
    int main()
    {
        
        char str[20] = "123";    
        int num2 = strtol(str, NULL, 10);
        cout<<num2<<endl;    
        return 0;
    }

    3.使用itos函数

    #include<iostream>
    #include<string>
    using namespace std;
    int main()
    {
        int num = 12;
        string str = itos(num);
        cout<<str<<endl;
    }
  • 相关阅读:
    【信号 10】kill函数、raise函数
    【信号 10】信号
    git remote
    分片上传 multipart
    【线程同步】屏障
    【进程间通信】信号量
    【信号 | 10】alarm函数、setitimer 函数
    【rpm】rpm设置
    va_start和va_end使用详解
    idea为什么提示:Duplicated code fragment (**lines long)
  • 原文地址:https://www.cnblogs.com/ttzz/p/10451886.html
Copyright © 2020-2023  润新知