{
char * str="testroad";
char * str2 = "tid=231&fid=322";
fun_Factorial();
lr_output_message("%s",fun_Reverse("abcdefg"));
lr_output_message("%s",fun_delspace(" delete space fun"));
lr_output_message("%s",fun_upchar(" upper char fun"));
lr_output_message("%s",fun_strrchr(str,'t'));
lr_output_message("%s",fun_getnum(str2,'&'));
return 0;
}
/**
1. 求100~999以内,这样一个三位数,该三位数等于其每位数字的阶乘之和。即:abc= a! + b! + c!
*/
int fun_Factorial() {
int i, hundreds, tens, units;
long product;
for ( i = 100; i < 1000; i++) {
hundreds = i / 100;
tens = (i - hundreds * 100) / 10;
units = (i - hundreds * 100 - tens * 10);
product = factorial(hundreds) + factorial(tens) + factorial(units);
if (product == i)
{
lr_output_message("%d = %d!+%d!+%d!",i,hundreds,tens,units);
break;
}
}
return i;
}
long factorial(int n){
if (n == 0) {
return 1;
} else {
return factorial(n - 1) * n;
}
}
/***
自定义一个函数,实现将字符串反序并在主函数中做输出;
*/
char * fun_Reverse(char * src){
int len = strlen(src);
char * dest = (char *)malloc(len * sizeof(char));
char * start = dest;
strcpy(dest, src);
src = src + len - 1;
while (*dest !='\0'){
*dest++ = *src--;
}
return start;
}
/***
删除字符串中的所有空格.
**/
char * fun_delspace(char * src){
int len = strlen(src);
char * dest = (char *)malloc(len * sizeof(char));
char * start = dest;
while (*src!= '\0')
{
if (*src == ' '){ //*src == 0x20
src++;
continue;
}
else{
*dest++ = *src++;
}
}
*dest = '\0';
return start;
}
/***
将字符串中所有下标为奇数位置上的字母转换成大写字母(若该位置上不是字母,则不转换)
**/
char * fun_upchar(char * src){
int len = strlen(src), i;
char * dest = (char *)malloc(len * sizeof(char)), * start;
strcpy(dest, src);
start = dest;
do {
if ((*dest >= 'a' && *dest <= 'z') && i % 2 == 1) {
*dest = *dest - 32;
}
i++;
} while (*dest++);
return start;
}
/***
重写srtrchr函数,实现查找字符串中指定字符最后一次出现时,所有的字符输出,将其中指定字符串的小写字母变成对应的大写字母并输出
****/
char *fun_strrchr(char *str,char a){
int len=strlen(str);
int t_len;
char * tmp =(char *)malloc(len*sizeof(char));
str=str+len-1;
while(len--){
if (*str==a) {
break;
}
str--;
}
strcpy(tmp, str);
*tmp = *tmp - 32;
return tmp;
}
/***
当我们通过关联,会得到如下的字符串“tid=231&fid=322”,其中tid的值有可能是三位数,也有可能是2位数,不能确定,请编写一个函数,截取出“fid=322”的值
****/
char *fun_getnum(char *str,char a){
int i,len;
len = strlen(str);
str=str+len-1;
while(len--){
if (*str==a) {
break;
}
str--;
}
return str+1;
}
/**
对字符串“jieofAoo)))eEe**7dfUe^^fds^%dfs%”进行处理,统计出非法字符的个数(字母,数字以外的字符都为非法字符)。
**/
Action()
{
char * str ="jieofAoo)))eEe**7dfUe^^fds^%dfs%";
int cont;
int len;
len = strlen(str);
lr_output_message("字符串个数为:%d",len);
while (*str != '\0') {
if(*str<=57&&*str>=48){
len--;
}else if(*str<=90&&*str>=65){
len--;
}else if(*str<=122&&*str>=97){
len--;
}
str++;
}
lr_output_message("字符串的非法字符的个数为:%d",len);
return 0;
}
/**
*
* 通过关联,我们获取到了一个字符串"192,000,123",现在要求去掉字符串中的逗号
* ,并替换成两个%%,即:192%%000%%123请编写一个函数来实现它
* */
Action()
{
char * str ="192,000,123";
int len,i;
char *desc;
len = strlen(str);
desc=(char *)malloc(2*len*sizeof(char *));
fun_No2(str,desc);
lr_output_message("转换后的字符串为:%s",desc);
free(desc);
return 0;
}
char *fun_No2(char *str,char *desc){
while(*str!='\0'){
if(*str == ','){
*desc++='%';
*desc++='%';
str++;
}
*desc++=*str++;
}
*desc='\0';
return desc;
}
/**
*
* 编写一个函数,查到1至10000内,能被7或者11整除,
* 同时不能被7和11同时整除的数,并放到数组中打印出来
* */
Action()
{
fun_No3();
return 0;
}
fun_No3(){
int arry[1000];
int i,j,n;
for (i=0;i<1000;i++) {
if( (i%7==0 || i%11==0 ) && (!( i%7==0 && i%11==0 ))){
arry[n]=i;
n++;
}
}
for(j=0;j<n;j++){
lr_output_message("%d",arry[j]);
}
}
/**
*
* 定义一个函数,实现对字符串做如下操作:当字符为字母时,
* 对应的ASCII值加5,当字符为数字时,原样输出
* ,当有其它字符出现时,结束操作,返回已处理的字符串(需要用指针的方式来实现)
* */
Action()
{
char *str = "aee$8873#ee";
char *desc;
int len=strlen(str);
desc=(char *)malloc(len*sizeof(char *));
fun_No4(str,desc);
lr_output_message("处理后的字符串为:%s",desc);
free(desc);
return 0;
}
char *fun_No4(char *str,char *desc){
while (*str != '\0') {
if((*str<=90&&*str>=65)||*str<=122&&*str>=97){
*desc=*str+5;
desc++;
str++;
}else if(*str<=57&&*str>=48){
*desc=*str;
desc++;
str++;
}else
{
*desc='\0';
break;
}
}
return desc;
}
/**
*
*通过对数据库的查询,我们得知,数据库对用户所在的省市县存成了一个字段,
*规则如下:以大写字母来区分启始字母。如HebeiShijiazhuangXinghua
*表示 河北省石家庄市新华区,又如ZhejiangHanzhouXihu 表示
*浙江省杭州市西湖区,现脚本中只需要获取到市一级的行政单位,如Shijiazhuang\Hanzhou
*等,请编写一个函数来实现
* */
Action()
{
char *str = "HebeiShijiazhuangXinghua";
char *desc;
int len=strlen(str);
desc=(char *)malloc(len*sizeof(char *));
fun_No5(str,desc);
lr_output_message("处理后的字符串为:%s",desc);
free(desc);
return 0;
}
char *fun_No5(char *str,char *desc){
int n;
while (*str != '\0') {
if((*str<=90&&*str>=65)){
n++;
if(n==2){
*desc++=*str++;
while (*str>90){
*desc++=*str++;
}
}
}
str++;
}
return desc;
}
/**
*
在一个订单脚本的处理过程中,我们得到了一串如下的字符串"GZPI655768",
*其中"GZPI"代表了产品的缩写,后面的数值是产品编号。
*现在脚本需要提交一个订单验证号,以防重复提交订单,
* 此验证号的规则是:
* 产品编号+当前日期(请利用lr_save_datetime()函数获取时间,
*使用方法请在F1中查看使用方法)证号的生成。
*(不一定需要自定义函数,能拼接出来即可)
* 注:日期的格式如下:20151105070656(年月日时分秒) * * *
* */
Action()
{
char *str = "GZPI655768";
char *newstr = (char *)malloc(strlen(str)*sizeof(char)+1);
char *new_date_str=(char *)malloc(strlen(str)*sizeof(char)+10);
fun_No6(str,newstr);
lr_output_message("产品编号为:%s",newstr);
lr_save_datetime("%Y%m%d%H%M%S",DATE_NOW , "newdate");
strcpy(new_date_str,newstr);
strcat(new_date_str,lr_eval_string("{newdate}"));
lr_output_message("订单验证号为:%s",new_date_str);
free(newstr);
free(new_date_str);
return 0;
}
fun_No6(char *str1,char *newstr1) {
int i,len;
len = strlen(str1);
for (i=0;i<len;i++) {
if (*str1>='A'&&*str1<='Z') {
str1++;
}else{
*newstr1++=*str1++;
}
}
*newstr1 = '\0';
}