[英]C: Assigning string variable using precision specifiers like printf
我想使用像printf一样的精确说明符来分配字符串变量,而不使用大量的for循环。 代码以命令行的日期传递,格式为YYYYMMDD。 要以MM / DD / YYYY格式打印日期,我会执行以下操作:
char *date = argv[2];
printf("%.2s/%.2s/%.4s", &date[4], &date[6], date);
所以从命令行传递'20130725'将打印'07 / 25/2013'
但是,如果我尝试这不起作用:
char *formatted_date = ("%.2s/%.2s/%.4s", &date[4], &date[6], date);
printf("%s\n", formatted_date);
从命令行传递'20130725'将打印'20130725'。
我如何以与此类似的方式分配变量,或者这在C中是不可能的?
您无法在初始化时执行此操作,但可以使用sprintf(3)
:
char formatted_date[11]; // MM/DD/YYYY plus a null terminator
sprintf(formatted_date, "%.2s/%.2s/%.4s", &date[4], &date[6], date);
printf("%s\n", formatted_date);
这在C中不起作用。您可以使用sprintf
,请参阅此内容
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.