The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа

GTK+ 2.0 Tutorial

<<< Previous

GLib

Next >>>


Обработка строки

GLib определяет новый тип, названный GString, который является подобным стандартному C string, но который увеличивается автоматически. Это строковые данные с нулевым символом в конце, что дает вам - защиту от буферного переполнения, программируя ошибки в пределах вашей программы.  Это - очень важная особенность, и следовательно я рекомендую, чтобы вы использовали GStrings.  Сам GString имеет простое общее определение:

struct GString 
{
  gchar *str; /* Points to the string's current \0-terminated value. */
  gint len; /* Current length */
};

Есть множество операций, которые вы можете сделать с GString.

GString *g_string_new( gchar *init );

Эта конструкция GString, копирует строковое значение из init в GString и возвращает указатель на него. NULL можно дать как параметр для первоначально пустого GString.

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,
                         ... );

<<< Previous

Home

Next >>>

Timers

Up

Utility and Error Functions






Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру