一、三个复制函数的区别:
strcpy
用法:#i nclude
功能:把src所指由NULL结束的字符串复制到dest所指的数组中。
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
memcpy
原型:extern void *memcpy(void *dest, void *src, unsigned int count);
用法:#i nclude
功能:由src所指内存区域复制count个字节到dest所指内存区域。
说明:src和dest所指内存区域不能重叠,函数返回指向dest的指针。
原型:extern void *memset(void *buffer, int c, int count);
用法:#i nclude
功能:把buffer所指内存区域的前count个字节设置成字符c。
说明:返回指向buffer的指针
一、lr_save_string函数
1.该函数主要是将程序中的常量或变量保存为参数;
- //将常量保存为参数
- lr_save_string("777","page")
- web_url(http://www.sina.com.cn/{page});
- lr_eval_string("{page}");
- //将变量保存为参数,tmp为变量
- lr_save_string(tmp,"page");
- web_url(http://www.sina.com.cn/{page})
2、
int sprintf( char *str,const char * format,.........); | |
函数说明 | sprintf()会根据参数format字符串来转换并格式化数据,然后将结果复制到参数str所指的字符串数组,直到出现字符串结束(’\0’)为止。关于参数format字符串的格式请参考printf()。 |
常用该函数代替itoa,将整数格式化为字符串形式。
3、lr_eval_string函数
用于返回instring参数中的实际字符串值,可以使用该函数来查看参数化取值是否正确;
三、两个比较函数
1、strstr
C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。
该函数返回值如下:
- 如果返回值 < 0,则表示 str1 小于 str2。
- 如果返回值 > 0,则表示 str2 小于 str1。
- 如果返回值 = 0,则表示 str1 等于 str2。
四、连接函数
1、
C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
- dest -- 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。
- src -- 指向要追加的字符串,该字符串不会覆盖目标字符串。
该函数返回一个指向最终的目标字符串 dest 的指针。
五、分割函数
1、char * strtok(char *s, const char *delim);
函数说明:strtok()用来将字符串分割成一个个片段。参数s 指向欲分割的字符串,参数delim 则为分割字符串,当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。
返回值:返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
- #include <string.h>
- main(){
- char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
- char *delim = "-: ";
- char *p;
- printf("%s ", strtok(s, delim));
- while((p = strtok(NULL, delim)))
- printf("%s ", p);
- printf("\n");
- }
2、split
split() 方法用于把一个字符串分割成字符串数组。
语法
stringObject.split(separator,howmany)
参数 | 描述 |
---|---|
separator | 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。 |
howmany | 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。 |
返回值
一个字符串数组。该数组是通过在 separator 指定的边界处将字符串 stringObject 分割成子串创建的。返回的数组中的字串不包括 separator 自身。
但是,如果 separator 是包含子表达式的正则表达式,那么返回的数组中包括与这些子表达式匹配的字串(但不包括与整个正则表达式匹配的文本)。
六、关联函数
1、
其中lrs_save_param("socket2",NULL, "BufData", 28, 4);是用于把从“socket2”接收的部分数据保存到参数BufData中。第一个参数"socket2"表示读取哪个Socket的数据;NULL表示从接收到的数据中进行读取;“BufData”是保存后的参数名称;28表示的数据包的偏移量,即从第28个字节后开始读取;4表示的是读取内容的长度lrs_save_param("socket2", “buf1”, "BufData", 28, 4);则是用来把静态缓存"buf1"中的数据保存到参数BufData中,即从data.ws中保存的buf1中读取数据。
lrs_save_param的两种用法区别于第二个参数是否制定buffer名称,当第二参数指定具体的buffer名称后将会到data.ws中查找对应的buffer来进行保存;当第二个参数指定NULL后将从接收到的缓存区中读取数据
---------------------
原文:https://blog.csdn.net/wcq2013/article/details/28690519
3、
int lrs_save_param_ex ( char *s_desc, char *type, char *buff, int offset, int length, char *encoding, char *param );
s_desc表示指定的Socket名称;
type表示要存储的数据类型,有“user”、“static”、“received”三种,分别代表用户数据(脚本中自己定义的字符串)、静态数据(data.ws中录制的数据)、最后接收的缓冲区数据;
buff表示要保存哪个缓冲区的数据。这个参数与type有对应关系,如果type是“user”、“static”两种,则需要指定具体的buffer名称;如果是“received”则可以忽略这个参数;
offset表示在buffer中的偏移量;length表示要从buffer中保存的字节数;
encoding表示的是解码方式。对于“user”类型的buffer,需要指定其为ascii或者ebcdic中的一种,NULL值表示默认的格式为ascii。对于“static”与“received”两种类型的buffer,则可以忽略这个参数,使用客户端的原始编码格式来进行解码;
param表示要保存的参数名称。
---------------------
原文:https://blog.csdn.net/gzh0222/article/details/6920693
七、