繁体   English   中英

C:使用printf等精度说明符分配字符串变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM