跳转至

其他操作

string 转 C-string

string 是 C++ 字符串,C-string 是以 '\0' 结尾的字符数组或字符指针。

一、C-stringstring

// char[] 转 string
char s[] = "hello";
string str = s;    

// const char* 转 string
const char* p = "world";
string str = p;

// 直接构造
string str("hello");

二、stringC-string

不能直接变成普通 char[],但可以先得到 const char*

c_str()

string str = "hello";
const char* p = str.c_str();

这样 p 就指向一个 C 风格字符串。

这个是最标准、最常用的写法。

string 转 int/double

string - int

// string 转换成 int
string s = "1234";
int x = stoi(s);

// int 转换成 string
int x = 123;
string s = to_string(x);

string - double

// string 转换成 double
string s = "3.14159";
double x = stod(s);

// double 转换成 string
double x = 3.14159;
string s = to_string(x);

C-string 转 int/double

C-string - int

// C 风格字符串(C-string)转换成 int
char s[] = "123";
int x = atoi(s);

也可以用 sscanf
char s[] = "123";
int x;
sscanf(s, "%d", &x);

C-string - double

// C 风格字符串(C-string)转换成 double
scanf("%s", s);
double x = atof(s);

也可以用 sscanf
char s[] = "2.75";
double x;
sscanf(s, "%lf", &x);

参考

C风格字符串和string类型的相互转换_c字符串转string-CSDN博客