1、字符串转换为数字
atoi /atol/atof分别将字符串转换为int/long/double
如:atoi("123")结果为int 123;
当待转换的字符串中包含非数字字符时,转换的结果将从非字符的位置截断
如:atof("123.4a6")结果为double 123.4
sscanf将字符串转换为数字---------根据分割字符来划分
如:sscanf("123,456 789", "%d,%d %d", &a,&b,&c); 结果为a=123,b=456,c=789;
某些特殊字符需要使用特殊的方式来分割
如:sscanf("1234|5678", "%[^|]|%d", m_str, &a);这里要以字符串的形式转化 | 前面的内容 再将m_str用上述方式转换为int 结果为m_str="1234", a=5678;
2、数字转换为字符串
itoa/ltoa分别将int/long转换为对应的字符串形式,其第三个参数表示转换过程中使用的进制单位
如:itoa(1234, m_str, 16)结果m_str中存放着int 1234的16进制的串“4d2”
fcvt将浮点数转换为字符串的形式并返回该字符串
如char *temp = fcvt(1234.5678, 10, &dec, &sign)结果temp = 12345678000000 dec=4 sign=0
其中第二个参数表示转换至字符串之后小数点后的串长度,本例中5678000000 10个长度。dec为整数部分的长度,本例中为4(1234),sign表示浮点数的符号,正数为0负数为1。
与sscanf对应的有spritnf方法可将数字转换为字符串:
如:sprintf(temp, "%f", 1234.5678); 结果temp = "1234.567800";
3、浮点数取整、求余
floor(f) 返回f的整数部分;
ceil(f)返回不大于f的最大整数;
fmod(double, double)浮点数求余 其中第一个参数为被除数,第二个参数为除数。