zoukankan      html  css  js  c++  java
  • C/C++中字符串和数字互转小结

    一. 数字 转 char*型

    1.sprintf函数(适合C和C++)

    示例:

       char str[50];
       int num = 345;
       sprintf(str,"%d",num);
    

    sprintf()函数的功能非常强大,此处只是将int型数字转换成字符串,更多的介绍可见:https://blog.csdn.net/sjf331/article/details/339254 

    二.数字 转 string型

    1.利用stringstream(只适合于C++)

    示例:

       string str;
       int num = 345;
       stringstream ss; //记住要包含头文件#include<sstream>
       ss << num;
       str = ss.str();
    

    2.利用to_string(只适用于C++,且必须C++11以及以上)

    示例:

       string str;
       int num = 345;
       str = to_string(num);
    

    三.char* 转 数字

    1.atoi以及相关的函数(适合C和C++)

    示例:

       char str[] = "345";
       int num;
       num = atoi(str);
    

    相关的函数包括:C标准库还提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long long 型。

    2.sscanf函数

    示例:

       char str[] = "345";
       int num;
       sscanf(str,"%d",&num);
    

    sscanf函数的功能用样也很强大,具体用法此处不详述。

    四.string 转 数字

    1.stoi函数(只适用于C++)

    示例:

       string str = "345";
       int num;
       num = stoi(str);
    

    stoi函数与atoi函数的区别,见:http://www.cnblogs.com/wangkundentisy/p/8511119.html 最底部分。

    2.利用stringstream(只适用于C++)

    示例:

       string str = "345";
       int num;
       stringstream ss;
       ss << str;
       ss >> num;
    

    利用stringstream既可以将string转换成数字,同时也可以将数字转换成string。

    需要注意的一点是:一定要搞清楚字符串是char *类型还是string类型。

    ===================================================================补充===================================

    五. string 转 char*

    1.利用c_str()函数

    示例:

         string str = "345";
         char * s1 = new char[10];
         strcpy(s1,str.c_str());
    

    c_str()是string类中的成员函数,作用是将string转化成char*,并在结尾处添加"",但是此处不能直接使用 = 进行直接赋值,而是要使用strcpy拷贝函数。因为c_str()返回的是一个临时指针,不能对其进行操作。

    六. char* 转 string

    1.直接利用 = 进行赋值即可。

    示例:

    char * str = "123";
    string ss;
    ss = str;
    

      

  • 相关阅读:
    C# 抽象方法和虚方法的区别
    xmlhttprequest readyState 属性的五种状态
    ServiceStack破解文件
    k8s部署mysql
    docker 开放2376端口的问题
    .net core 发布到IIS 没有 web.config 文件
    1064
    docker mysql 主从同步配置
    Docker 鼠标在虚拟机与主机之间自由切换
    Socket原理解析2
  • 原文地址:https://www.cnblogs.com/wangkundentisy/p/8891758.html
Copyright © 2011-2022 走看看