代码如下:
int main(void)
{
char url_str[1024];
int url_len = 0;
url_len = snprintf(url_str, sizeof(url_str), "%*.*s,5,5,"hello");
printf("url_len is:%s\n", url_str);
return 0;
}
刚开始看到 %*.*s 的时候楞了一下,半天没反应过来,后来想了下,这个与"%5.5s,"hello"是等价的。
不过若是这里的5和"hello"要是经常变化的值的话,用 %*.*s 就更方便了。
注: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9, 则第9个字符以后的内容将被删除。
其余的更详细的关于format的讲解请参考:
[精华] gcc中格式化输出函数的研究(转)
http://www.chinaunix.net/old_jh/23/24825.html