当前位置: 首页 > news >正文

做网站需要模板网站如何建站

做网站需要,模板网站如何建站,旅游系统网站开发的背景,网站开发公司云鲸互创怎么联系学过面向对象语言的同学一定都知道String类#xff0c;一定知道这个类对字符串的操作是多麽的方便#xff0c;但是c语言中是没有这个类#xff0c;甚至没有类的概念#xff0c;但是glib帮我们做的这个“类” GString 除了使用gchar *进行字符串处理以外#xff0c;Glib还… 学过面向对象语言的同学一定都知道String类一定知道这个类对字符串的操作是多麽的方便但是c语言中是没有这个类甚至没有类的概念但是glib帮我们做的这个“类”  GString 除了使用gchar *进行字符串处理以外Glib还定义了一种新的数据类型 GString。 它类似于标准C的字符串类型但是GString能够自动增长。它的字符串数据是以NULL结尾的。 这些特性可以防止程序中的缓冲溢出。这是一种非常重要的特性。 GString是一种动态字符串数据结构提供了丰富灵活方便的API无需手工分配内存无需担心缓冲区溢出。 先说一下GString的结构体定义 GString typedef struct {gchar *str;gsize len; gsize allocated_len; } GString;这里就不用多解释了str是字符串的指针len是字符串长度allocated_len是前面说的会多申请一段内存申请的大小是由一定的算法并不是保留一个固定值下面的例子程序中有相关的效果可以留意一下。 然后是glib提供的功能函数 Synopsis #include glib.hGString; GString* g_string_new (const gchar *init); GString* g_string_new_len (const gchar *init,gssize len); GString* g_string_sized_new (gsize dfl_size); GString* g_string_assign (GString *string,const gchar *rval); #define g_string_sprintf #define g_string_sprintfa void g_string_vprintf (GString *string,const gchar *format,va_list args); void g_string_append_vprintf (GString *string,const gchar *format,va_list args); void g_string_printf (GString *string,const gchar *format,...); void g_string_append_printf (GString *string,const gchar *format,...); GString* g_string_append (GString *string,const gchar *val); GString* g_string_append_c (GString *string,gchar c); GString* g_string_append_unichar (GString *string,gunichar wc); GString* g_string_append_len (GString *string,const gchar *val,gssize len); GString* g_string_append_uri_escaped (GString *string,const char *unescaped,const char *reserved_chars_allowed,gboolean allow_utf8); GString* g_string_prepend (GString *string,const gchar *val); GString* g_string_prepend_c (GString *string,gchar c); GString* g_string_prepend_unichar (GString *string,gunichar wc); GString* g_string_prepend_len (GString *string,const gchar *val,gssize len); GString* g_string_insert (GString *string,gssize pos,const gchar *val); GString* g_string_insert_c (GString *string,gssize pos,gchar c); GString* g_string_insert_unichar (GString *string,gssize pos,gunichar wc); GString* g_string_insert_len (GString *string,gssize pos,const gchar *val,gssize len); GString* g_string_overwrite (GString *string,gsize pos,const gchar *val); GString* g_string_overwrite_len (GString *string,gsize pos,const gchar *val,gssize len); GString* g_string_erase (GString *string,gssize pos,gssize len); GString* g_string_truncate (GString *string,gsize len); GString* g_string_set_size (GString *string,gsize len); gchar* g_string_free (GString *string,gboolean free_segment);GString* g_string_up (GString *string); GString* g_string_down (GString *string);guint g_string_hash (const GString *str); gboolean g_string_equal (const GString *v,const GString *v2);用下面的函数创建新的GString变量 GString *g_string_new( gchar *init ); 这个函数创建一个GString将字符串值init复制到GString中返回一个指向它的指针。 如果init参数是NULL创建一个空GString。  void g_string_free( GString *string, gint free_segment ); 这个函数释放string所占据的内存。 free_segment参数是一个布尔类型变量。如果 free_segment参数是TRUE它还释放其中的字符数据。  GString *g_string_assign( GString *lval, const gchar *rval ); 这 个函数将字符从rval复制到lval销毁lval的原有内容。注意如有必要 lval会被加长以容纳字符串的内容。这一点和标准的字符串复制函数strcpy( )相同。下面的函数的意义都是显而易见的。 其中以_ c结尾的函数接受一个字符而不是字符串。  截取string字符串生成一个长度为len的子串 GString *g_string_truncate( GString *string, gint len );  将字符串val追加在string后面返回一个新字符串 GString *g_string_append( GString *string, gchar *val );  将字符c追加到string后面返回一个新的字符串 GString *g_string_append_c( GString *string, gchar c );  将字符串val插入到string前面生成一个新字符串 GString *g_string_prepend( GString *string, gchar *val );  将字符c插入到string前面生成一个新字符串 GString *g_string_prepend_c( GString *string, gchar c );  将一个格式化的字符串写到string中类似于标准的sprint f函数 void g_string_sprintf( GString *string, gchar *fmt, . . . ) ;  将一个格式化字符串追加到string后面与上一个函数略有不同 void g_string_sprintfa ( GString *string, gchar *fmt, ... ); 下面用一个例子程序说明几个常用函数的用法 [cpp] view plain copy #include glib.h      int main(int argc,char **argv) {      //    GString* g_string_new(const gchar *init);   根据所给的字符串建立适当长度的GString并自动创建适当长度的allocated_len创建的时候将字符串init复制到GString中。       GString *string  g_string_new(Justin);       g_print(g_string_new(\Justin\); len  %d, allocated_len  %d\n,                string-len, string-allocated_len);          //    若不使用GString时可以使用g_string_free()释放第二个参数如果为TRUE会连同字符串也是放掉。       g_string_free(string, TRUE);                  //    GString* g_string_new_len(const gchar *init, gssize len);     指定len来建立GString因为是自行制定的长度所以len必须超过init的长度。       string  g_string_new_len(Justin, 32);       g_print(g_string_new_len(\Justin\, 32); len  %d, allocated_len  %d\n,                string-len, string-allocated_len);           g_string_free(string, TRUE);                  //    GString* g_string_sized_new(gsize dfl_size);      指定allocated_len建立GString函数会根据需要的长度值自动分配长度也就是不一定会分配设置的长度但一定会比设定的长度大。       string  g_string_sized_new(32);       g_printf(g_string_sized_new(32); len  %d, allocated_len  %d\n,                string-len, string-allocated_len);        g_string_free(string, TRUE);                GString *tg_string_new(Hello Laomeng.);       GString *sg_string_new(Hello Laoli.);          //    g_string_equal()    判断两个GString的字符串内容是否相同       if(g_string_equal(s,t))        {           g_print(g_string_equal(s,t); %s   %s\n,s-str,t-str);       }        else        {           g_print(g_string_equal(s,t); %s ! %s\n,s-str,t-str);       }       g_string_free(s, TRUE);        g_string_free(t, TRUE);           string  g_string_new(first str!);   //     GString* g_string_append (GString *string,const gchar *val);     在字符串string后面追加字符串val       g_string_append(string, second str!);       g_print(g_string_append(string, \second str!\); %s\n, string-str);      //    GString* g_string_truncate(GString *string,gsize len); 截断字符串保留前len个字符       g_string_truncate(string,5);       g_print(g_string_truncate(string,5);  string:  %s, len  %d, allocated_len  %d\n,string-str, string-len , string-allocated_len);      //     GString* g_string_prepend (GString *string,const gchar *val);     在字符串string前面追加字符串val       g_string_prepend(string, prepend str!);       g_print(g_string_prepend(string, \prepend str!\); string:%s\n, string-str);      //     GString* g_string_insert (GString *string,gssize pos,const gchar *val);     将字符串插入到pos处       g_string_insert(string, sizeof(prepend str!)-1 , insert str!);       g_print(g_string_insert(string, sizeof(\prepend str!\) , \insert str!\); %s\n, string-str);      //    void g_string_printf(GString *string, const gchar *format, ...);  格式化一个字符串和sprintf用法一样只是赋值给一个GStringstring里面以前的数据被销毁了       g_string_printf(string,%d  %d  %d, 100, 200, 100200);       g_print(g_string_printf(); GString: %s, len  %d, allocated_len  %d \n,string-str, string-len , string-allocated_len);      //    void g_string_append_printf(GString *string, const gchar *format, ...);  格式化一个字符串和g_string_printf很相似只是不销毁string里面的数据而是在后面追加       g_string_append_printf(string,\t %d * %d  %d, 100,200,100*200);       g_print(g_string_append_printf(); GString: %s, len  %d, allocated_len  %d \n,string-str, string-len , string-allocated_len);          g_string_free(string,TRUE);          string  g_string_new(abcdefgABCDEFG);      //    g_string_ascii_up()或g_utf8_strup() 转换GString中的字符串为小写       g_string_ascii_up(string);       g_printf(Upper: %s\n, string-str);   //    g_string_ascii_down()或g_utf8_strdown()转换GString中的字符串为大写       g_string_ascii_down(string);       g_printf(Down: %s\n, string-str);          g_string_free(string,TRUE);          return 0;      }   运行结果 [plain] view plain copy linuxubuntu:~/16021/glibdemo$ gcc -o gstring gstring.c -lglib-2.0   linuxubuntu:~/16021/glibdemo$ ./gstring    g_string_new(Justin); len  6, allocated_len  16   g_string_new_len(Justin, 32); len  32, allocated_len  64   g_string_sized_new(32); len  0, allocated_len  64   g_string_equal(s,t); Hello Laoli. ! Hello Laomeng.   g_string_append(string, second str!); first str!second str!   g_string_truncate(string,5);  string:  first, len  5, allocated_len  32   g_string_prepend(string, prepend str!); string:prepend str!first   g_string_insert(string, sizeof(prepend str!) , insert str!); prepend str!insert str!first   g_string_printf(); GString: 100  200  300, len  15, allocated_len  32    g_string_append_printf(); GString: 100  200  300   100 * 200  20000, len  34, allocated_len  64    Upper: ABCDEFGABCDEFG   Down: abcdefgabcdefg   linuxubuntu:~/16021/glibdemo$
http://www.pierceye.com/news/908207/

相关文章:

  • 专业建设网站公司哪家好建设工程合同管理多少分及格
  • 网站制作是那个大连开发区一中
  • 做预约的网站2345网址导航官网下载
  • 网站建设创建wordpress用户评论图片
  • .耐思尼克官方网站工程公司会计账务处理
  • 如何进入微网站毕业设计网站开发
  • 已经备案的网站新增ip怎么做网站分站如何做
  • 网站建设 常州怎么做网络推广营销
  • 海南建设工程信息网站常用网站建设软件
  • 福州网络推广建站网站建设工作室深圳
  • html的网站案例长春头条新闻今天
  • 免费的十大免费货源网站产品设计开发流程图
  • 做网站的内容网站建设工作室有几个部门
  • jquery win8风格企业网站模板wordpress编辑器 模板
  • 北京国互网网站建设电话免费网站怎么盈利模式
  • 网站建设图片如何加载ssh做电商 网站
  • 网站开发资质网站域名服务错误
  • html5 社团网站模板 代码下载上海做营销网站哪个公司好
  • 动易网站 模板南京企业建站系统模板
  • 网站实名网站建设技术百科
  • 网站策划书范文模板网盟推广费
  • 先做网站还是先做app唐山模板建站定制网站
  • 小城镇建设的网站中的主要观点廊坊网站设计公司
  • 银联支付网站建设企业qq登录
  • dw怎样做网站链接aspcms建站
  • 网站的栏目wordpress php版本太低
  • 浙江网站制作出效果图
  • 电子商务是电商吗产品seo是什么意思
  • 黑龙江省建设工程质量协会网站中文搜索引擎网站
  • 汽车报价网站宁波网络推广丿易企网怎么样