数字转化成字符串

Ashnu 2004-05-06 01:16:18
希望得到字符串而不是数字形式的日历时间.我写了一个简单的算法:
68 char *Time()
69 {
70 char buff[12]="0", *result;
71 time_t now=time(NULL);
72 int m, n=0, mod;
73 for (m=10; (mod=now%m)!=0; m*=10)
74 buff[n++]=mod*10/m+'0';
75 result=(char *)malloc(strlen(buff)+1);
76 for (m=0; n>=0;)
77 result[m++]=buff[--n];
78 result[m]=0;
79 return result;
80 }
但是这个算法会发生浮点数异常.请教有什么解决办法吗?标准C中有没有数字转字符串的函数?似乎是没有吧
...全文
27 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Ashnu 2004-05-06
多谢烧鱼了 :) 真是一条好鱼啊,嘻嘻~~
  • 打赏
  • 举报
回复
saoyu 2004-05-06
这么写
char *Time()
{
char buff[12]="0", *result;
time_t now=time(NULL);
long m, n=0, mod;
for (; now!=0; now/=10){
buff[n++]=now%10+'0';
}
result=(char *)malloc(strlen(buff)+1);
for (m=0; n>=0;)
result[m++]=buff[--n];
result[m]=0;
return result;
}
  • 打赏
  • 举报
回复
cngdzhang 2004-05-06
用asctime

#include <stdio.h>
#include <string.h>
#include <time.h>

int main(void)
{
struct tm t;
char str[80];

/* sample loading of tm structure */

t.tm_sec = 1; /* Seconds */
t.tm_min = 30; /* Minutes */
t.tm_hour = 9; /* Hour */
t.tm_mday = 22; /* Day of the Month */
t.tm_mon = 11; /* Month */
t.tm_year = 56; /* Year - does not include century */
t.tm_wday = 4; /* Day of the week */
t.tm_yday = 0; /* Does not show in asctime */
t.tm_isdst = 0; /* Is Daylight SavTime; does not show in asctime */

/* converts structure to null terminated string */

strcpy(str, asctime(&t));
printf("%s\n", str);

return 0;
}



或ctime

#include <stdio.h>
#include <time.h>

int main(void)
{
time_t t;

time(&t);
printf("Today's date and time: %s\n", ctime(&t));
return 0;
}
  • 打赏
  • 举报
回复
saoyu 2004-05-06
看错了,颠倒了
  • 打赏
  • 举报
回复
saoyu 2004-05-06
strtol函数可以,字符串到长整形
  • 打赏
  • 举报
回复
相关推荐
发帖
C语言
加入

6.5w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2004-05-06 01:16
社区公告
暂无公告