一、string 与 char 之间相转换:
头文件一般为:
#include <stdlib.h>
#include <string>
1、string 转成 const char*
string str = "abcd";
const char* m = str.c_str( );
2、const char* 转成 string
const char* m = "abcd";
string (m);
3、string 转到 char*
string str = "abcd";
char* m ;
const int len = str.length( );
m = new char[len + 1];
strcpy(m, str.c_str( ));
4、char* 转到 string
char* m = "abcd";
string (m);
5、const char* 转到 char*
const char* m = "abcd";
char* mc = new char[512]; // 需保证空间足够
strcpy(mc, m);
二、string 与 int 之间相转换:
头文件一般为:
#include <stdlib.h>
#include <string>
#include <iostream>
using namespace std;
1、int 转到 string
(C++11 标准库增加了全局函数 std::to_string)
(1) string to_string (int val);
(2) string to_string (long val);
(3) string to_string (long long val);
(4) string to_string (unsigned val);
(5) string to_string (unsigned long val);
(6) string to_string (unsigned long long val);
(7) string to_string (float val);
(8) string to_string (double val);
(9) string to_string (long double val);
eg: int n = 10;
string str = to_string(n);
2、string 转到 int
(可以使用 std::stoi、std::stol、std::stoll 等函数)
eg1:
string str = "2018abcd";
int i_dec = std::stoi(str, &sz);
int j_hex = std::stoi(str, nullptr, 16);
int k_bin = std::stoi(str, nullptr, 2);
int l_auto = std::stoi(str, nullptr, 0);
eg2:
string s = "27";
int n = atoi(s.c_str( ));
三、char 与 int 之间相转换:
头文件一般为:
#include "stdlib.h"
#include "stdio.h"
1、char 转到 int
char s = '7';
int d = (int)(s - '0');
2、int 转成 char
int d = 8;
char s = (char)(d + '0');
3、字符串转换成 int (C语言库函数,atoi)
char p[ ] = "521";
long a = atoi(p);
4、int 转成 字符串型
int num = 1314;
char str[100];
itoa(num, str, 10); // 10表示以 十进制转化,其他进制类似
(itoa()函数非C标准库,而是 windows下扩展,标准库中有 sprintf,功能更强大,用法类似 printf)
int n = 5211314;
char s[100];
sprintf(s, "%d", n);
5、char* 转成 int
char* p = "123";
int x;
x = atoi(p); // 若char* p = "123.456"; 则,x = atof(p);
(函数原型:int atoi(const char *nptr);atoi() 会扫描参数字符串 nptr ,如果第一个字符不是数字也不是正负号返回零,否则开始做类型转换,之后检测到非数字或结束符 \0 时停止转换,返回整型数。)
参考:https://www.cnblogs.com/wxmdevelop/p/4567857.html
https://blog.csdn.net/u010510020/article/details/73799996
https://blog.csdn.net/chen372901/article/details/52102074/