整数转化为字符串

  1. 自己写一个函数实现类似库函数itoa的功能,将整数转化为字符串。
  2. 整数转汉字,表示货币量。

1、代码:

 1 char *IntToStr(int num, char str[])
 2 {
 3     int i = 0, j = 0;
 4     char temp[100];
 5     while(num)
 6     {
 7         temp[i] = num % 10 + '0';   //取模运算得到从后往前的每一个数字变成字符
 8         num = num / 10;
 9         i++;
10     }
11     temp[i] = 0;    //字符串结束标志
12     
13     i = i - 1;     //回到temp最后一个有意义的数字
14     while(i >= 0)
15     {
16         str[j] = temp[i];
17         i--;
18         j++;
19     }
20     str[j] = 0;   //字符串结束标志
21     return str;
22 }
23 
24 /*字符串转换为整数,仅考虑十进制,不考虑非法字符*/
25 int StrToInt(char *str)
26 {
27     int value = 0;
28     int sign = 1;
29     assert(str != NULL);
30     if(*str == '-')
31     {
32         sign = -1;
33         str++;
34     }else if(*str == '+')
35     {
36         str++;
37     }
38     while(*str)
39     {
40         value = value * 10 +(*str - '0');
41         str++;
42     
43     }
44     return sign * value;
45 }

 

2、代码:

 1 #include <iostream>
 2 
 3 using namespace std;
 4 char * str[10] = {"", "", "", "", "", "", "", "", "", ""};
 5 char * weight[4] = {"", "", "", ""};
 6 
 7 void Num2StrPer4(int value)
 8 {
 9     if (value == 0) return;
10     int base = 1000, curr = 3, digit;
11     while (value / base == 0) 
12     {
13         base /= 10;
14         --curr;
15     }
16     while(base > 0)
17     {   
18         digit = value / base;
19         cout << str[digit];   
20         if (digit != 0) cout << weight[curr];
21         value = value % base;   
22         if (value == 0) break;
23         base = base / 10;
24         curr--;       
25     }   
26 }
27 
28 int main(void)
29 {
30     int cas;
31     scanf("%d", &cas);
32     char buff[32];
33     while (cas--)
34     {
35         int value = 0;
36         scanf("%s", buff);
37         if (buff[0] == '-') 
38         {
39             printf("");
40             sscanf(buff+1, "%d", &value);
41         }
42         else 
43             sscanf(buff, "%d", &value);
44         if (value >= 10000)
45         {
46             Num2StrPer4(value/10000);
47             value = value % 10000;
48             printf("");
49             if (value != 0)
50             {
51                 if (value < 1000) printf("");
52                 Num2StrPer4(value);
53             }
54         }
55         else if (value == 0)
56             printf("");
57         else
58             Num2StrPer4(value);
59         printf("圆\n");
60     }
61     return 0;
62 }

 

posted on 2013-06-08 20:28  月moon鸟  阅读(751)  评论(0编辑  收藏  举报

导航