早教吧 育儿知识 作业答案 考试题库 百科 知识分享

在VC++6.0中,如何将一个数转化为由数字和小数点组成的字符串?如何将两个字符串合并成一个字符串?如何获取小数点的?如何将string类的字符串与char类的字符串合并?

题目详情
在VC++6.0中,如何将一个数转化为由数字和小数点组成的字符串?如何将两个字符串合并成一个字符串?
如何获取小数点的?
如何将string类的字符串与char类的字符串合并?
▼优质解答
答案和解析
下面这段代码就是将一个浮点数转化为字符串的:
01 #include
02 #include
03 #include
04
05 const double eps = 1e-12;
06
07 char s[30];
08
09 void reverse(char *s)
10 {
11 int i ,j;
12 int len = strlen(s);
13 for( i = 0 ,j = len - 1 ; i < j ; i++ ,j--)
14 s[i]^=s[j]^=s[i]^=s[j];
15 }
16
17 /* ftoa:convert double n to string s with digits*/
18 void ftoa(char *s,double n,int digits)
19 {
20 memset(s ,0 ,sizeof(s));
21 int i = 0 ,p;
22 bool sign = true;
23 if( n < 0 )
24 {
25 sign = false;
26 n = -n;
27 }
28 long long t = (long long)n;
29 n = n - t;
30 if( t == 0)
31 {
32 s[i++] = '0';
33 }
34 else
35 {
36 while( t != 0 )
37 {
38 p = t % 10;
39 t /= 10;
40 s[i++] = p + '0';
41 }
42 if(!sign) s[i++] = '-';
43 reverse(s);
44 }
45 if( fabs( n - 0.0 ) > eps )
46 {
47 s[i++] = '.';
48 int cur_d = 0;
49 while( cur_d < digits)
50 {
51 cur_d++;
52 n *= 10.0;
53 p = (long long)n;
54 n = n - p;
55 s[i++] = p + '0';
56 }
57 }
58 s[i] = '\0';
59 }
60
至于连个字符串合并,可以用strcat
原型
extern char *strcat(char *dest,char *src);
用法
#include
功能
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'.
说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串.
返回指向dest的指针.