#include<stdlib.h>
#include<stdio.h>
int main(){
/*字符串变成数字 */
char a[]="123",b[10]="-12.34";
int num = atoi(a);
printf("%d\n",num);
/* double atof(const char *str) 字符串转换成double,函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)*/
double db = atof(b);
printf("%.2lf\n",db);
/*数字转换成字符串*/
/* radix必须在2-36的范围内。
● char *itoa( int value, char *string,int radix): radix表示进制:将整型值转换为字符串。
● char*ltoa(long value,char *string,int radix):将长整型值转换为字符串。
● ultoa():将无符号长整型值转换为字符串。
● char *gcvt(double number, size_t ndigits, char *buf):将浮点型数转换为字符串,取四舍五入。参数ndigits 表示显示的位数。
● char *ecvt(double value, int ndigit, int *decpt, int *sign):将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。如果少于ndigit个数字,该字符串用0填充。
value是要转换的浮点数;ndigit是小数点后面的位数;*decpt表示小数点的位置;*sign表示符号,0为正数,1为负数。
● fcvt():指定位数为转换精度,其余同ecvt()。
sprintf类似于printf,都是按照格式化字符串输出参数到目标。不过printf是输出到终端,而sprintf是输出到第一个参数的字符串中
*/
// itoa(num,b,10);
// printf("%s\n",b);
// long int li = 123456l;
// ltoa(li,b,10);
// printf("%s\n",b);
// double db =-12.34;
// gcvt(db,4,b);
// printf("%s\n",b);
// double db = -12.34;
// int ndigit =4,dec,sign;
// char *c;
// c = ecvt(db,ndigit,&dec,&sign);
// printf("string = %s 小数点位置 = %d 符号 = %d\n",c, dec, sign);
// double db = 12.34;
// sprintf(b,"%.2lf",db);
// printf("%s\n",b);
}
C语言转换字符串和数字的库函数
最新推荐文章于 2024-04-12 03:45:31 发布