Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4242293
  • 博文数量: 1148
  • 博客积分: 25453
  • 博客等级: 上将
  • 技术积分: 11949
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 21:14
文章分类

全部博文(1148)

文章存档

2012年(15)

2011年(1078)

2010年(58)

分类: C/C++

2011-06-05 08:10:00

怎样把数字转换为字符串 与 atoi 相反 ?? 有 itoa 函数吗 ??

itoa 在 windows 下有,非标准函数库。。

其实我们可以用 sprintf 实现

sprintf (string, "%d", number);

也可以用 sprintf把long型或者浮点型转换为字符串型  %ld %f
所以说 sprintf 是 atoi 的反函数

  1. #include <stdio.h>
  2. #include <stdlib.h> // EXIT_SUCCESS

  3. #define SIZE 1024

  4. int main(int argc, char *argv[])
  5. {
  6.     char str[SIZE];
  7.     int number;

  8.     printf("input the number\n");
  9.     scanf("%d", &number);

  10. #if 1
  11.     if(sprintf(str,"%d",number) == -1)
  12.     {
  13.         perror("failed sprintf\n");    
  14.         exit(EXIT_FAILURE);
  15.         
  16.     }
  17. #endif
  18.     printf("after sprintf str is %s\n\n",str);

  19.     int year;
  20.     int month;
  21.     int day;

  22.     printf("input the year:\n");
  23.     scanf("%d", &year);
  24.     
  25.     printf("input the month:\n");
  26.     scanf("%d", &month);

  27.     printf("input the day:\n");
  28.     scanf("%d", &day);

  29.     sprintf(str,"year:%d--month:%d--day:%d", year, month, day);
  30.     printf("after sprintf str= %s\n", str);

  31.     exit(EXIT_SUCCESS);
  32. }

  1. ywx@yuweixian:~/yu/c/test$ ./test
  2. input the number
  3. 234
  4. after sprintf str is 234

  5. input the year:
  6. 2011
  7. input the month:
  8. 6
  9. input the day:
  10. 5
  11. after sprintf str= year:2011--month:6--day:5







阅读(1898) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~