项目过程中遇到的一个小问题:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct str{
char str1[12];
char str2[12];
}STR;
main(int argc, char **argv)
{
STR str;
memset(&str, ' ', sizeof(STR));
memcpy(str.str1, "000000123456", 12);
memcpy(str.str2, "000000123456", 12);
printf("金额[%.2f]\n", atof(str.str1)/100.00);
return 0;
}
上面程序本意是想输出1234.56,然而由于atof的原因,遇到非数字或字符串结束时('\0')才结束转换,并未输出想要的结果
解决的话可以定义一个临时数组,先把定长拷到数组中,在进行转换!!