zoukankan      html  css  js  c++  java
  • C++字符串类型转换

    • string 转 char*
    string str ("hello");
    char *p = str.c_str();
    
    • char* 转 string
    char *p = "hello";
    string str(p); 
    
    • 数值类型转为 string
      使用C++标准库函数
    #include <string>
    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);
    
    • string 转 数值类型
      方法1:string先转char*,再转数值类型,使用C标准库函数
    #include <stdlib.h>
    string str("123");
    int i = atoi(str.c_str());
    

    方法2:使用C++库函数,声明在string.h中

    #include <string>
    int stoi (const string& str, size_t* idx = 0, int base = 10);
    long stol (const string& str, size_t* idx = 0, int base = 10);
    unsigned long stoul (const string& str, size_t* idx = 0, int base = 10);
    long long stoll (const string& str, size_t* idx = 0, int base = 10);
    float stof (const string& str, size_t* idx = 0);
    double stod (const string& str, size_t* idx = 0);
    long double stold (const string& str, size_t* idx = 0);
    
    • char* 转 数值类型
      使用C标准库函数
    #include <stdlib.h>
    int atoi(const char* p)
    long atol(const char* p)
    long long atoll(const char* p)
    
    • 数值类型 转 char*
      先转string 再转char*
    #include <string>
    int i = 123;
    string str = to_string(i);
    char* p = str.c_str();
    
    • 为了记忆方便,都可以把string当做中间媒介来实现字符串与数值类型的转换
      int 转 char:int 先 to_string() 转为 string,string 再 string.c_str() 转为char
      char* 转 int:char* 先直接string str(char*) 转为 string,再 stoi() 转为 int
      int 转 string:to_string()
      string 转 int:stoi()
  • 相关阅读:
    python数据类型
    集合(set)内置方法
    python第三天
    剑指offer-什么是1G/2G/3G/4G/5G
    经典交换实验-二层交换机实现pc隔离&vlan通信
    linux运维神器-htop&mtr
    三分钟速学linux-进程管理命令
    三分钟速学文件权限管理
    三分钟速学网卡管理配置-nmcli命令
    三分钟速学linux-centos/redhat常见包管理器
  • 原文地址:https://www.cnblogs.com/yyehl/p/7092271.html
Copyright © 2011-2022 走看看