51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10489|回复: 18
打印 上一主题 下一主题

[求助] 请问在lr中如何截取字符串的中的一部份?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-24 18:11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我把一个字符串参数化后,发现另一个字符串是依赖前一个字符串的,例如:第一字符串是:001008, 第二个字符串就是001;或第一字符串是:北京西城区, 第二个字符串就是北京。所以我想问如何从一个字符串中截取一部份或多部份。
还有个问题就是,我声明了个变量,可是如何让这个变量等于参数化的值哪?谢谢了。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1
回复

使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    推荐
    发表于 2007-7-26 11:44:09 | 只看该作者
    原帖由 honglong 于 2007-7-24 18:11 发表
    我把一个字符串参数化后,发现另一个字符串是依赖前一个字符串的,例如:第一字符串是:001008, 第二个字符串就是001;或第一字符串是:北京西城区, 第二个字符串就是北京。所以我想问如何从一个字符串中截取 ...


    之前告诉你的是:用指针循环的方式完成的。现在有更简便的方法,直接用LR的函数+数组的方式完成。不需要使用指针了!!
    请看如下的代码:

    现有一个字符串:"ABCDEFG", 现要从第三位开始,连续取两位字符,即"DE"! 取值代码如下
      char array1[20];
      char array2[20];

      strcpy(array1,"ABCDEFG");
      strncpy(array2,&array1[3],2);      //&array1[3]表示的值是:"CDEFG"
      lr_output_message("Value is:%s", array2);

    [ 本帖最后由 spartan 于 2007-7-26 11:54 编辑 ]
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-7-24 18:42:27 | 只看该作者

    回复 #1 honglong 的帖子

    1.截取某个字符中的某几位代码:

    下面的列子是:截取字符串"ABCDEFG"中, 从第三位开始连续两位的字符,即:CD.

    int k;
    char  tempstr2[30];
    char *strtmp="ABCDEFG";

       for (k=1;k<3;k++)
          {
          strtmp++;
          }
    lr_output_message( "strtmp=%s",strtmp);
    strncpy(tempstr2,strtmp,2);
    lr_output_message( "tempstr2=%s",tempstr2);


    2.将某个变量的值赋值给某个参数

    下面的列子是:将上段代码中变量tempstr2的值,赋值给参数列表中的参数temp,并且显示出来。
    lr_save_string(tempstr2,"temp");
    lr_output_message("the velue is:%s",lr_eval_string("{temp}"));
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-7-24 18:47:04 | 只看该作者
    顶楼上。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2007-7-24 19:21:53 | 只看该作者
    顶上  很久以前我急需这个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2007-7-24 22:28:46 | 只看该作者
    太牛了!就是看着有点晕。看来要好好看看c的书了。太感谢spartan 了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2007-7-24 22:40:23 | 只看该作者
    好好复习复习c吧,其实LoadRunner中的编程语言就是c的一个子集。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2007-7-25 09:10:10 | 只看该作者
    能把代码解释一下吗?for(k=1){} 那个循环是什么意思呀?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2007-7-25 09:48:33 | 只看该作者

    回复 #7 hhy0824 的帖子

    for (k=1;k<3;k++)
          {
          strtmp++;
          }

    strtmp是个指针。 strtmp++:指针位置往后移动一位。

    1.  循环开始前,指针指在第一个字符上。即:ABCDEFG

    2. K=1,满足循环条件。指针望后移动一位,指在第二个字符上了。 即:ABCDEFG

    3. K=2,满足循环条件。指针望后移动一位,指在第三个字符上了。 即:ABCDEFG

    4. K=3,不满足循环条件。指针位置不移动,仍然指在第三个字符上。 即:ABCDEFG

    所以:经过这个循环之后,指针的位置在第三个字符上。 即:ABCDEFG

    [ 本帖最后由 spartan 于 2007-7-25 09:50 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2007-7-25 10:00:05 | 只看该作者
    sdlkfj2 强
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2007-7-25 14:09:29 | 只看该作者
    今天试验时发现一个小问题,请教一下spartan 。char *strtmp="ABCDEFG";
    赋值一个字符串,但是如何把一个字符类型的变量赋值给*strtmp。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-6-25 18:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2007-7-25 14:33:23 | 只看该作者
    ls理解有错误,*strtmp是指针变量,要赋值也必须是指针变量,而不能把字符类型赋值给指针,只能把字符值的指针赋值给其他指针变量
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2007-7-25 17:05:54 | 只看该作者
    原帖由 honglong 于 2007-7-25 14:09 发表
    今天试验时发现一个小问题,请教一下spartan 。char *strtmp="ABCDEFG";
    赋值一个字符串,但是如何把一个字符类型的变量赋值给*strtmp。


    你的意思是:程序有个字符类型的变量, 比如说是: empstr,它的值是:jordan, 即:empstr=“jordan”;同时有个指针变量: *temp, 如何将empstr的值jordan赋值给指针变量 *temp, 对吗? 

    [ 本帖最后由 spartan 于 2007-7-25 17:07 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-11 15:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2007-7-25 18:36:57 | 只看该作者
    我将字符型变量赋值给指针,数组赋值给指针,同样数据类型的指针相互赋值,常量字符串赋值给指针都罗列了一下。应该会对楼主有所帮助的。

    point_01()
    {
              int k;
                     char *point1, *point2;
                     char str1;
                     char  array1[300];
                     char  result1[300],result2[300],result3[300],result4[300];

    /* 相同类型的指针之间的赋值,将指针point1已经有的值赋给指针point2; */
                       point1="ABCDEFGH";
                       point2=point1;
                       for (k=1;k<3;k++)
                              {
                              point2++;
                              }
                     strncpy(result1,point2,3);
                     lr_output_message( "指针相互赋值的结果result1=%s",result1);
                   
                   
    /*变量的值赋给相同数据类型的指针*/
                  str1='S';//注意:使用char型变量,只能定义一个字符。
                      point2=&str1;
                       for (k=1;k<1;k++)
                              {
                              point2++;
                              }
                     strncpy(result2,point2,3);
                     lr_output_message( "变量赋值给指针的结果result2=%s",result2);

    /* 把数组的值赋予指向数组的指针变量,array1 为数组,将其值赋予指针point1; */
            strcpy(array1,"helloloadrunner");
                    point1=array1;
                     for (k=1;k<3;k++)
                      {
                      point1++;
                      }
                    strncpy(result3,point1,3);
                    lr_output_message( "数组赋值给指针的结果result3=%s",result3);

    /*把字符串赋予指向字符类型的指针变量, 将字符串"youareboy"赋值给指针point1;*/
                       point1="youareboy";
                       for (k=1;k<3;k++)
                              {
                              point1++;
                              }
                     strncpy(result4,point1,3);
                     lr_output_message( "字符串赋值给指针的结果result4=%s",result4);

            return 0;
    }

    [ 本帖最后由 spartan 于 2007-7-25 18:38 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2007-7-26 12:34:24 | 只看该作者
    看得出spartan是个函数高手.
    关于截取字符的问题,之前有过这类的贴子.可以找找看一看.不过spartan回答的相当好.支持一下.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-7-26 13:57:48 | 只看该作者

    继续学习中

    继续学习中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2007-7-26 17:38:59 | 只看该作者
    牛!估计今天晚上有的看了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-3-15 22:25:48 | 只看该作者
    原帖由 spartan 于 2007-7-24 18:42 发表
    1.截取某个字符中的某几位代码:

    下面的列子是:截取字符串"ABCDEFG"中, 从第三位开始连续两位的字符,即:CD.

    int k;
    char  tempstr2[30];
    char *strtmp="ABCDEFG";

       for (k=1;k

    挺不错的。。。很实用,可惜lr_save_var()不够强,如果option参数能设置为第几位开始,那就爽了~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2012-6-9 15:10:12 | 只看该作者
    学习了,用这个方法确实解决了我的问题
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-15 09:27 , Processed in 0.084410 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表