由于今天测试的一个项目,账号是已经生成--是手机号,但是密码是手机的后6位,因为这是游客登录,而且这些手机号数据库又没有,所以密码不能在数据库修改,只能自己从生成的手机号中取后六位了。
在网上找了找也没找到现成的函数,于是决定自己写一个来处理,一下就是我写的代码:
Action()
{
char *phonenum;
int k=1;
phonenum=lr_eval_string("{Phone}");//参数化获取的手机号码
for (k=1;k<6;k++){//k=1标示从phonenum的指针第一位开始 k<6表示phonenum的坐标移到第6位
phonenum++;
lr_save_string(phonenum,"Passwd");//将移位后的phonenum保存到新的参数中作为密码来使用
lr_output_message("手机号的后6位是:%s",lr_eval_string("{Passwd}"));//验证保存的参数是否正确
return 0;
}
其实这些都是由以前参考过的guid函数启发所想:
void guid(char * messageId)
{
int itera_num,rand_num,i,j,k=k+1;
char StrTable[]="abcdefghijklmnopqrstuvwxyz1234567890";
char string1[24]="";
char string2[24]="";
char string3[24]="";
char string4[24]="";
char string5[24]="";
char string5_temp[24]="";
char messageId[126]="";
char * conn = "-";
for (i=0;i<=7;i++){
rand_num=rand()%36;
strncat(string1,StrTable+rand_num,1);} //前8位的获取
for (i=0;i<=3;i++){
rand_num=rand()%36;
strncat(string2,StrTable+rand_num,1);}//中间4位的获取
for (i=0;i<=3;i++){
rand_num=rand()%36;
strncat(string3,StrTable+rand_num,1);}
for (i=0;i<=3;i++){
rand_num=rand()%36;
strncat(string4,StrTable+rand_num,1);}
for (i=0;i<=11;i++){
rand_num=rand()%36;
strncat(string5,StrTable+rand_num,1);}
strcpy(messageId, string1);
strcat(messageId, conn);
strcat(messageId, string2);
strcat(messageId, conn);
strcat(messageId, string3);
strcat(messageId, conn);
strcat(messageId, string4);
strcat(messageId, conn);
strcat(messageId, string5);
}