C风格字符串 String类 以及与整数之间的转化

 C++中字符串string和整数int的互相转化方式

一、string转int的方式

1.采用标准库中atoi函数。

string s = "12";
int a = atoi(s.c_str());

对于其他类型也都有相应的标准库函数,比如浮点型atof(),long型atol()等等。或者直接使用stoi()、stol()、stoll()。

 

2.采用sstream头文件中定义的字符串流对象来实现转换。

istringstream is("12"); //构造输入字符串流,流的内容初始化为“12”的字符串
int i;
is >> i; //从is流中读入一个int整数存入i中

 

二、int转string的方式
1.采用标准库中的to_string函数。

int i = 12;
cout << std::to_string(i) << endl;

不需要包含任何头文件,应该是在utility中,但无需包含,直接使用,还定义任何其他内置类型转为string的重载函数,很方便。

 

2.采用sstream中定义的字符串流对象来实现。

ostringstream os; //构造一个输出字符串流,流内容为空
int i = 12;
os << i; //向输出字符串流中输出int整数i的内容
cout << os.str() << endl; //利用字符串流的str函数获取流中的内容

字符串流对象的str函数对于istringstream和ostringstream都适用,都可以获取流中的内容。

char*、const char* 与 string

1) string 是c++标准库里面其中一个,封装了对字符串的操作,实际操作过程我们可以用const char*给string类初始化

2) 三者的转化关系如下所示:

a) string转const char*

string s = “abc”;
const char* c_s = s.c_str();

 

b) const char* 转string,直接赋值即可

const char* c_s = “abc”;
string s(c_s);

  

c) string 转char*

string s = “abc”;
char* c;
const int len = s.length();
c = new char[len+1];
strcpy(c,s.c_str());

  

d) char* 转string

char* c = “abc”;
string s(c);

  

e) const char* 转char*

const char* cpc = “abc”;
char* pc = new char[strlen(cpc)+1];
strcpy(pc,cpc);

  

f) char* 转const char*,直接赋值即可

char* pc = “abc”;
const char* cpc = pc;

  

posted @ 2021-08-29 22:35  默行于世  阅读(89)  评论(0编辑  收藏  举报