c中sprintf函数
c中sprintf函数printf(edate,"%s%s",decideday(trans(substr(date,0,3)),2000+atoi(substr(dat...
c中sprintf函数
printf(edate, "%s%s", decideday(trans(substr(date, 0, 3)), 2000+atoi
(substr(date, 3, 5))), date);
date是一个char数组,例如输入的是:JAN09。
substr函数是截取字符串的,例如substr(date, 0, 3)就会截取出JAN这三个字符。
trans这个函数是将英文缩写的月份转换为字符型,例如传入JAN,会返回“1”。
sprintf语句中decideday函数有两个参数,第一个是接收月份,即“1”,第二个是接受年份,例如:“2009”。
应得到的结果例如:01JAN09
但现在这个sprintf运行后是错误的,如果改为:
char tmpday[6];
strcpy(tmpday, decideday(trans(substr(date, 0, 3)), 2000+atoi(substr
(date, 3, 5))));
sprintf(edate, "%s%s", tmpday, date);
难道sprintf中参数不能太复杂,对参数的长度有没有要求?嵌套层次不能太多?请指教!谢谢!
错误就是没有得到01JAN09的结果 展开
printf(edate, "%s%s", decideday(trans(substr(date, 0, 3)), 2000+atoi
(substr(date, 3, 5))), date);
date是一个char数组,例如输入的是:JAN09。
substr函数是截取字符串的,例如substr(date, 0, 3)就会截取出JAN这三个字符。
trans这个函数是将英文缩写的月份转换为字符型,例如传入JAN,会返回“1”。
sprintf语句中decideday函数有两个参数,第一个是接收月份,即“1”,第二个是接受年份,例如:“2009”。
应得到的结果例如:01JAN09
但现在这个sprintf运行后是错误的,如果改为:
char tmpday[6];
strcpy(tmpday, decideday(trans(substr(date, 0, 3)), 2000+atoi(substr
(date, 3, 5))));
sprintf(edate, "%s%s", tmpday, date);
难道sprintf中参数不能太复杂,对参数的长度有没有要求?嵌套层次不能太多?请指教!谢谢!
错误就是没有得到01JAN09的结果 展开
展开全部
sprintf 是个变参函数。
【功能】:把格式化的数据写入某个字符串缓冲区。
【头文件】:stdio.h
【原型】:int sprintf( char *buffer, const char *format, [ argument] … );
【参数列表】:
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
【返回值】:字符串长度(strlen)
【功能】:把格式化的数据写入某个字符串缓冲区。
【头文件】:stdio.h
【原型】:int sprintf( char *buffer, const char *format, [ argument] … );
【参数列表】:
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
【返回值】:字符串长度(strlen)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询