C++ 中字符串与数值的相互转换

C++中,字符串类型string与数值之间(如整型,浮点型)的相互转换,可以采用C语言的方法,也可以采用C++的stringstream流方法。
 
一. C方法
字符串转换为数值等:
在C语言中,使用<stdlib.h>中,使用atoi (integer) atof (float)  atol (long)等,参数为 char *。 在C++中,可以使用<cstdlib>完成类似的操作。注,函数参数是C风格字符串。
在C++中,C的库函数,都以去掉".h"开头加"c"来形成C++对应的库函数
  
  
  
  
  1. #include <string> //string  
  2. #include <cstring> //c_style string  
  3. #include <cstdlib> //c标准库,包含atoi等  
  4.  
  5. string s="123";  
  6. n= std::atoi(s.c_str()); 
 数值转换为字符串:
C语言中使用sprintf,位于C中的<stdio.h>中,在C++位于<cstdio>
  
  
  
  
  1. #include <string>  
  2. #include <cstdio>  
  3.  
  4. char tmp[255];  
  5. std::sprintf(tmp,"%d",n); //“%d”可写成其他形式,类似printf  
  6. string s=tmp;  
二. C++ stringstream方法
C++中, stringstream为字符串流,由iostream派生,位于库<sstream>
istringstream为输入流,ostringsteam为输出流。
字符串转数值:
#include < string>
#include <sstream>

string s;
int n;
istringstream ss(s);
ss>>n;
数值转字符串
#include< string>
#include<sstream>

ostringstream ss;
int n;
string s;
ss<<n;
s=ss.str();
注: istringsteam和ostringstream均可写成stringstream
 
 
 
 

你可能感兴趣的:(C++,字符串,转换,数值,整数)