|
本帖最后由 云层 于 2011-12-16 14:05 编辑
发现自己C语言还是蛮烂的,写了一个随机字符串的写法在LR中用来解决一些需要输入属性赋值问题,但是总觉得这个写法不好,征求一个更好的写法:
主要是LR的C貌似不能用char这类的取ascii码
研究了一下换了个写法,这种写法效率应高很多了,利用了%c的转码功能
- char *randstring1(int slen)
- {
- int i,randid;
- char temp[100]="";
- char character_set[52] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N','O', 'P','Q', 'R', 'S', 'T','U', 'V', 'W', 'X','Y', 'Z','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r','s', 't', 'u', 'v', 'w', 'x','y','z'};
- for(i=1;i<=slen;i++)
- {
- randid=rand()%52;
- sprintf(temp,"%s%c",temp,character_set[randid]);
- }
- return(temp);
- }Action(){ lr_output_message(randstring1(5)); return 0;}
复制代码
下面的这种老写法大家随便看看
- void randstring(int slen)
- {
- int x,randid,i;
- char *smsg,temp[100];
- smsg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
- x=strlen(smsg);
- for(i=1;i<=slen;i++)
- {
- randid=rand()%x+1;
- lr_save_var(smsg+randid,1,0,"test");
- strcat(temp,lr_eval_string("{test}"));
- }
- lr_save_string(temp,"randstring");
- }
- Action()
- {
- randstring(5);
- lr_output_message(lr_eval_string("{randstring}"));
- return 0;
- }
复制代码 |
|