所以我必须写一个文件字符串以及该字符串的长度。输出应如下所示:
======= =====
merrily 7
row 3
your 4
boat 4
gently 6
down 4
the 3
dream 5
stream 6
life 4
is 2
but 3
a 1
所以我有一个名为char big[50]
的字符串数组,它包含列表中最大长度的字符串。如果我使用strlen(big)
,那么我会得到7,因为merrily
是该列表中最大的字符串并且字数为7.那么我应该如何用理由打印它?我不能写fprintf(fpOut, "%7s %d\n, table[i], strlen(table[i]);
,因为我的程序有多个用户可以打开的文件,如果我使用%7s
,它就不能正确地为其他文件辩护。有解决方案吗?
答案 0 :(得分:4)
您可以用星号替换常量宽度说明符(7)以获取可变宽度说明符。因此,以下代码的宽度说明符为strlen(big)
:
fprintf(fpOut, "%*s %d\n", strlen(big), table[i], strlen(table[i]);
答案 1 :(得分:1)
您可以使用printf:
#include <stdio.h>
int main(int argc, char *argv[]){
printf("%*s |\n", 7, "let");
// or to file: fprintf(file, "%*s |\n", 7, "let");
return 0;
}
答案 2 :(得分:0)
您可以在fprintf参数中指定字符串的长度。您还可以查看我的项目:libtprint - 一个打印表格数据的简单库,https://github.com/wizzard/libtprint。在那里,我使用各种技巧来证明字符串。
希望它有所帮助!