免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1043 | 回复: 0
打印 上一主题 下一主题

GTK中的字符串操作GString [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-02 22:53 |只看该作者 |倒序浏览
GString
除了使用gchar *进行字符串处理以外, G l i b还定义了一种新的数据类型: G S t r i n g。它类似于标准C的字符串类型,但是G S t r i n g能够自动增长。它的字符串数据是以N U L L结尾的。这些特性可以防止程序中的缓冲溢出。这是一种非常重要的特性。下面是G S t r i n g的定义:
struct GString
{
gchar *str; /* Points to the st’rsi ncgurrent \0-terminated value. */
gint len; /* Current length */
} ;
用下面的函数创建新的G S t r i n g变量:
GString *g_string_new( gchar *init );
这个函数创建一个G S t r i n g,将字符串值i n i t复制到G S t r i n g中,返回一个指向它的指针。如果i n i t参数是N U L L,创建一个空G S t r i n g。
void g_string_free( GString *string, gint free_segment );
这个函数释放s t r i n g所占据的内存。f r e e _ s e g m e n t参数是一个布尔类型变量。如果f r e e _ s e g m e n t参数是T R U E,它还释放其中的字符数据。
GString *g_string_assign( GString *lval,const gchar *rval );
这个函数将字符从r v a l复制到l v a l,销毁l v a l的原有内容。注意,如有必要, l v a l会被加长以容纳字符串的内容。这一点和标准的字符串复制函数s t r c p y ( )相同。下面的函数的意义都是显而易见的。其中以_ c结尾的函数接受一个字符,而不是字符串。
截取s t r i n g字符串,生成一个长度为l e n的子串:
GString *g_string_truncate( GString *string,gint len );
将字符串v a l追加在s t r i n g后面,返回一个新字符串:
GString *g_string_append( GString *string,gchar *val );
将字符c追加到s t r i n g后面,返回一个新的字符串:
GString *g_string_append_c( GString *string,gchar c );
将字符串v a l插入到s t r i n g前面,生成一个新字符串:
GString *g_string_prepend( GString *string,gchar *val );
将字符c插入到s t r i n g前面,生成一个新字符串:
GString *g_string_prepend_c( GString *string,gchar c );
将一个格式化的字符串写到s t r i n g中,类似于标准的s p r i n t f函数:
void g_string_sprintf( GString *string,gchar *fmt,. . . ) ;
将一个格式化字符串追加到s t r i n g后面,与上一个函数略有不同:
void g_string_sprintfa ( GString *string,gchar *fmt,... );


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/50931/showart_1357793.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP