首頁 / LinuxDev / GTK+ 2.0 教學-字串處理

GTK+ 2.0 教學-字串處理

GLib 定義了一個叫做 GString 的新型別,該型別相似於標準 C 中的string,但可以自動增長。字串資料以null結尾。該型別可以防止程式中的緩衝區溢出錯誤。這是一個非常重要的特性,因此我推薦使用 GString。GString 有一簡單定義:

struct GString 
{
  gchar *str; /* 指向當前以『\0』結尾的字串。 */
  gint len; /* 當前長度 */
};

如你所預想的,有許多對一個 GString 型別字串的操作。

GString *g_string_new( gchar *init );

這個函式構造一個 GString 型別字串,它把 init指向的字串值複製到 GString 型別字串中,傳回一個指向它的指標。建一個初始為空的 GString 型別字串則傳遞一個 NULL 作為參數。

void g_string_free( GString *string,
                    gint     free_segment );

該函式釋放給定的 GString 型別字串的記憶體。如果參數 free_segment 為 TRUE,也釋放其字元資料。

 GString *g_string_assign( GString     *lval,
                          const gchar *rval );

該函式將 rval 中的字元複製到 lval 中,覆蓋 lval 中以前的內容。注意為裝下複製的字串,lval 會變長,這是和標準的 strcpy() 數不一樣的。

以下函式的功能是相當明顯的(帶有_c的版本接受一個字元而不是一個字串):

 GString *g_string_truncate( GString *string,
                            gint     len );

GString *g_string_append( GString *string,
                          gchar   *val );

GString *g_string_append_c( GString *string,
                            gchar    c );

GString *g_string_prepend( GString *string,
                           gchar   *val );

GString *g_string_prepend_c( GString *string,
                             gchar    c );

void g_string_sprintf( GString *string,
                       gchar   *fmt,
                       ...);

void g_string_sprintfa ( GString *string,
                         gchar   *fmt,
                         ... );
Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

One comment

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top