需求:lr需要在一串数字中随机位置插入一个新数字的实现方式
效果如下:
需要用到sscanf()函数: 从一个字符串中读进与指定格式相符的数据。
Action() { char s1[20],s2[4],s3[20]; int n=atoi(lr_eval_string("{rand}"));//n从1开始取值 //int n=2;//n从1开始取值 int i=0,l,y,m=0,k=0; int j=n-1; lr_output_message("s1原始:%s", s1); sscanf(lr_eval_string("{num}"),"%s",s1);//作用:将num参数的值,赋值给s1字符串,也可以用字符串连接函数 sscanf(lr_eval_string("{rand}"),"%s",s2); lr_output_message("s1新值:%s", s1); while(s1[j]!='\0')//改if为while { s3[m]=s1[j]; m++; j++; } s3[m] = '\0';//加入字符串结束标识 while(s2[i]!='\0')//改if为while { s1[n-1+i]=s2[i]; i++; } l=n+i-1; while(s3[k]!='\0')//改if为while { s1[l]=s3[k]; k++; l++; } s1[l] = '\0';//加入字符串结束标识 lr_output_message("s1最终:%d", atoi(s1)); return 0; }
方法2:个人更新换脚本2
int Action() { //char s[10]="222222"; //长度为6,i的取值只能为0-6 //int i = 3; char s[10]; int i = atoi(lr_eval_string("{rand}")); char *ss,*p,*ch; int j; sscanf(lr_eval_string("{num}"),"%s",s); lr_output_message("%s",s); p = s; ss = (char *)malloc(20); ch = ss; for(j = 0;j <strlen(s)+2;j++) { if(i == j) { *ss = 'A'; ss++; } else { *ss = *p; ss++; p++; } } ss++; *ss ='\0' ; lr_output_message("%s",ch); }
作者:Agoly 出处:https://www.cnblogs.com/qmfsun/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |