云层 发表于 2012-2-8 23:26:48

sockets协议中经常要用到的字符串处理函数

这两天在QQ群里面看到有人问我sockets包中的结构式是1\x002\x003\x00我怎么参数化这个数据,于是就写了下面这个函数,来方便大家参数化这类数据
char *build16(char *oldstring)
{
        int len,i;
    char newstring;
        len=strlen(oldstring);
        for(i=0;i<len;i++)
        {
                lr_save_var(oldstring+i,1,0,"onechar");
                sprintf(newstring,"%s%s\\x00",newstring,lr_eval_string("<onechar>"));
        }
        return(newstring);
}

vuser_init()
{
    lrs_startup(257);       

        lr_output_message(build16("cloud"));
    return 0;
}


调用的时候只需要写build16()你要处理的字符串就行了,生成结果自动分离返回字符串c\x00l\x00o\x00u\x00d\x00

cu_zhuang 发表于 2012-3-19 09:33:44

额,没看懂

hbthzhy 发表于 2012-3-19 10:36:49

呃。。有没有更基础点的。。真看不懂啊。。。

xinkehust 发表于 2012-3-23 08:28:48

好东西,不错撒!

xinkehust 发表于 2012-3-23 14:36:47

本帖最后由 xinkehust 于 2012-3-23 14:39 编辑

11

xinkehust 发表于 2012-3-23 14:37:48

#include "lrs.h"

    char *build16(char *oldstring)
{

                int len,i;
      char newstring;
      len=strlen(oldstring);
      for(i=0;i<len;i++)
      {
                lr_save_var(oldstring+i,1,0,"onechar");
//                          sprintf(newstring,"\\x0%s%s",newstring,lr_eval_string("<onechar>"));
                        sprintf(newstring,"%s\\x0%s",newstring,lr_eval_string("<onechar>"));
/*
                if (i==0)
             {
            return(newstring);
               }
*/
            
      }
      return(newstring);
}

vuser_init()
{
    lrs_startup(257);      

      lr_output_message(build16("123"));

    return 0;
}

aspstar 发表于 2012-3-25 18:05:30

写的不错,有点作用。

edisonzhang 发表于 2012-4-28 20:18:24

没看懂,继续学习

edisonzhang 发表于 2012-5-3 15:27:23

是有点作用第一次没明白,执行了下 换个参数 明白了

wl9643 发表于 2012-8-16 19:24:27

没看懂
页: [1]
查看完整版本: sockets协议中经常要用到的字符串处理函数