1.数字转字符串:使用sprintf()函数
char str[10]; int a=1234321; sprintf(str,"%d",a); -------------------- char str[10]; double a=123.321; sprintf(str,"%.3lf",a); -------------------- char str[10]; int a=175; sprintf(str,"%x",a);//10进制转换成16进制,如果输出大写的字母是sprintf(str,"%X",a) --------------------
char *itoa(int value, char* string, int radix); 同样也可以将数字转字符串,不过itoa()这个函数是平台相关的(不是标准里的),故在这里不推荐使用这个函数
2.字符串转数字,使用sscanf函数
char str[]="1234321"; int a; sscanf(str,"%d",&a); ............. char str[]="123.321"; double a; sscanf(str,"%lf",&a); ............. char str[]="AF"; int a; sscanf(str,"%x",&a); //16进制转换成10进制 另外也可以使用atoi(),atol(),atof().
3.数字转字符串,int float类型 同理
#include <string> #include <sstream> int main() { double a = 123.32; string res; stringstream ss; ss << a; ss >> res;//或者 res = ss.str(); return 0; }4.字符串转数字,int float类型 同理
int main() { string a = "123.32"; double res; stringstream ss; ss << a; ss >> res; return 0; }
上面方法的优点就是使用简单方便,确定可能会相对别的方法来说慢一点,但是一般少量的数据可以忽略该因素。
itoa不是ansi函数
能将整数转换为字符串而且与ANSI标准兼容的方法是使用sprintf()函数