C++中int与string的相互转换
2015-03-21 22:59
447 查看
itoa()和
strtol()
itoa()将int转化成char* 类型,注意这并不能将int转化成string,而是将char*并且这并不是一个标准的C函数,他是在Windows下的函数。
strtol()将string类型转换成long型,一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时(‘\0’)结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回;若参数endptr为NULL,则会不返回非法字符串。
// char* itoa(int value, char* string, int radix); // long int strtol(const char* nptr, char** endptr,int base); int aa = 30; char c[8]; itoa(aa,c,16); cout << c << endl; // 1e string s = "17"; long num = strtol(s.c_str(), NULL, 10); cout << num << end; // 17
sprintf()和
sscanf()
sprintf()将要转化的其他的类型利用sprintf函数格式化式的输出到buffer缓冲区中。
sscanf()从一个字符串buffer中读进与指定格式相符的数据,具体用法见百度百科
// int sprintf( char *buffer, const char *format, [ argument] … ); // int sscanf(const char *buffer,const char *format,[argument ]...); int aa = 30; char c[8]; int length = sprintf(c, "%05X", aa); cout<< c << endl; // 0001E sscanf("17","%d",&aa); cout << aa << endl; // 17
stringstream/ostringstream和
stringstream/istringstream
sstream头文件定义了三个类型来支持内存IO(istringstream, ostringstream,stringstream),这些类型可以向string写入数据,可以从string中读取数据,就像string是IO流一样。
istringstream从string中读取数据,一般使用 >>符号,将string中像控制台似的输出数据
ostringstream将数据写入string中,一般使用 <<符号,将其他类型的数据输入string中
stringstream则是以上两种只和,既可以读入也可以写入。
#include <sstream> int aa = 30; stringstream stra; stra << aa; cout << stra.str() << endl; // 30 ostringstream strb; strb << aa; cout << strb.str() << endl; // 30 stringstream straa("17"); straa >> aa; cout << aa << endl; // 17 istringstream strbb("17"); strbb >> aa; cout << aa << endl; // 17
参考资料
C++ int与string的转化 /article/4998214.htmlhttp://baike.baidu.com/view/1364018.htm
相关文章推荐
- C++里的int 和string类型相互转换
- c++ CString string char* char int类型的相互转换
- (c++) int 转 string,char*,const char*和string的相互转换
- c++中int,string,char类型的相互转换
- C++中int、string、const char*、CString之间的相互转换
- C++ 中 int,char*,string,CString之间相互转换-整理
- c++ int,double等数字类型与string的相互转换
- C++ int和string相互转换
- C++中string与int的相互转换实现代码
- C++中string,char,int,double等数据类型的相互转换及与ASCII码的转换
- C++中 char*, string, CString, int, double之间相互的转换
- c++中 int类型 与 string类型 的相互转换
- C++中int和string类型的相互转换
- c++中string与int之间相互转换
- c++中string和int相互转换
- [C++] string与int, float, double相互转换
- c++中 int 和 string 的相互转换
- C++ 中使用sstream进行string和int相互转换
- (个人总结)C++中int类型与String类型的相互转换
- C++中int与string的相互转换