printf を次のように使用して、gstring に文字列を書き込んでいます。
char *string<i>
/*where string<i> stands for string1, string2
and so on*/
g_string_append_printf (ustring, "@%s{%s,\n",string1, string0);
if( strlen(string2)!=0 ||string2!=NULL)
g_string_append_printf (ustring,"\tAuthor=\"%s\",\n", string2);
if( strlen(string3)!=0 ||string3!=NULL)
g_string_append_printf (ustring,"\tYear=\"%s\",\n", string3);
if( strlen(string4)!=0 ||string4!=NULL)
g_string_append_printf (ustring, "\tTitle=\"%s\",\n", string4);
ここでは、GLib はおそらくそれほど重要ではありません。と考えてください。
printf ("\tAuthor=\"%s\",\n", string<i>)
これがかなりうまくいくとき、それは最善の方法ではないようです(私はstring <1>からstring <30>までの文字列を持っています)、より良い方法を探しています。
考慮すべき点
printf の前のすべての行でチェックされるように、任意の文字列が空/NULL である可能性があります。
完全な印刷物が関数として機能する場合はより良いでしょう
これを実装するより良い方法はありますか?