我正在研究一个字符串的前缀,例如:com应该给我c co com.我知道打印一个字符就是printf("%.5s",string)打印前五个值.我想在一个循环而不是5中做这个,我怎么能用i一个递增的值替换它,就像这样printf("%.is",string).我怎么能得到这个?
在printf格式说明符中,所有字段宽度(在点之前)和精度(在点之后)可以作为星号给出*.对于每个星号,int在打印对象之前必须有一个附加参数.
那么,对于你的问题:
printf("%.*s", i, string);
Run Code Online (Sandbox Code Playgroud)
请注意,附加参数必须是a int,因此如果您有另一个整数类型,则应该强制转换它:
size_t len = strlen(len);
if (len > 2) printf("%.*s", (int) (len - 2), string);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1342 次 |
| 最近记录: |