0

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>までの文字列を持っています)、より良い方法を探しています。

考慮すべき点

  1. printf の前のすべての行でチェックされるように、任意の文字列が空/NULL である可能性があります。

  2. 完全な印刷物が関数として機能する場合はより良いでしょう

これを実装するより良い方法はありますか?

4

1 に答える 1