请教空字符串中插入整数
char buff[10]=" ";//长度10
double temp=-102.2;
double temp1=32.33;
如何将temp和temp1放入buff也就是插入buff最前,最后得到新的buff,长度同样是10
buff="-102.2 "//长度10
buff="32.33 "//长度10
而且每次插入的数长度位数不确定,但不会超过10个长度
请问有没有相关的函数可以使用?
请高人指点
[解决办法]
sprintf(buff,"%d", temp);
[解决办法]
强制类型转换,然后用指针操作...
#include <stdio.h>int main(){ int i; char buff[10];//长度10 double temp=-102.2; double temp1=32.33; double* ptr = (double*)buff; for (i = 0 ; i < 10; i++) buff[i] = ' '; ptr[0] = temp; ptr[1] = temp1; return 0; }
[解决办法]
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char buff[10]; double temp = -102.2; sprintf(buff, "%.1f", temp); //这里要注意小数位 //double temp2 = 32.33; //sprintf(buff, "%.2f", temp); //增加空格 int i; for (i = strlen(buff); i < sizeof(buff) - 1; i++) { buff[i] = ' '; } buff[i] = '\0'; //保证最后的\'0' printf("[%s]\n", buff); system("pause"); return 0;}
[解决办法]
首先,buf的内容为10个空格就错了,只能是9个空格。。
char buf2[10];gcvt(temp, 10, buf2);//gcvt()的第二个参数是temp的位数(不包括小数点),这里取10,是buf2的大小strncpy(buf, buf2, strlen(buf2));