51Testing软件测试论坛

标题: 谁帮我看看为什么返回的值为空 [打印本页]

作者: edisonlzk    时间: 2010-9-15 13:47
标题: 谁帮我看看为什么返回的值为空
  1. Action()
  2. {
  3.     //extern char * strtok(char * string, const char * delimiters );
  4.     char *token = NULL;
  5.         char *str1;
  6.         int i=1;
  7.         int j,l;
  8.         int IsAdd = 0;
  9.         char *newshuzu[] = {0};
  10.         char *shuzu[100];

  11.         web_service_call( "StepName=GetAVHInfo_102",
  12.                 "SOAPMethod=BenefitService|BenefitServiceSoap|GetAVHInfo",
  13.                 "ResponseParam=response",
  14.                 "Service=BenefitService",
  15.                 "ExpectedResponse=SoapResult",
  16.                 "Snapshot=t1284458955.inf",
  17.                 BEGIN_ARGUMENTS,
  18.                 "UserName=1",
  19.                 "TakeoffDate=2010-12-20",
  20.                 "FromCity=ctu",
  21.                 "ToCity=kwe",
  22.                 END_ARGUMENTS,
  23.                 BEGIN_RESULT,
  24.                 "GetAVHInfoResult=Param_GetAVHInfoResult",
  25.                 END_RESULT,
  26.                 LAST);

  27.         lr_save_string(lr_eval_string("{Param_GetAVHInfoResult}"),"tempStr");
  28.         str1 = lr_eval_string("{tempStr}");
  29.         token = (char*)strtok(str1,",");

  30.         lr_error_message("%s",lr_eval_string("{Param_GetAVHInfoResult}"));

  31.          while(token!=NULL)
  32.          {
  33.                  if(strlen(token)==3)
  34.                  {
  35.                          //lr_output_message("%s\n",token);
  36.                          shuzu[i] = token;
  37.                          i++;
  38.                  }
  39.                 token=(char*)strtok(NULL,",");       
  40.          
  41.         }

  42.         [color=Red]for (j=1;j<i;j++)
  43.         {
  44.                 l=0;
  45.                 for (;l<=j;l++)
  46.                 {
  47.                         if (shuzu[l]==shuzu[j]))
  48.                         {
  49.                                 IsAdd=1;
  50.                                 break;
  51.                         }
  52.                 }
  53.                 if (IsAdd == 0) {
  54.                         newshuzu[j] = shuzu[j];
  55.                        
  56.                 }
  57.                 lr_output_message("%s", newshuzu);
  58.          }[/color]
  59. }
复制代码
红色标识的代码是我用来比较数据组是不是有重复的值,如果有的话,就把重复的却掉,可我不明白为什么,我返回的值都是为空呢?而且会输出13次
按理来说,只应该会返回4个,因为服务器返回的值就为“CTU,KWE,733,CTU,KWE,733,CTU,KWE,733,CTU,KWE,738”

谁可以帮我看看吖,我弄了大半上午了,都没个结果。。
作者: 云层    时间: 2010-9-15 16:09
我大概明白你的意思,不过感觉你的strtok写的有些问题,细的分析就没空帮你看了,无非就是你用strtok按照逗号分离的问题,你可以用我的或者是论坛上有个朋友写的对字符串再分离的函数,比你自己写简单点
作者: edisonlzk    时间: 2010-9-20 16:35
这个问题已经解决了。。。谢谢
作者: devil_xxg    时间: 2010-9-20 17:05
Param_GetAVHInfoResult,是参数吗?
作者: msnshow    时间: 2010-9-20 21:22
回复 3# edisonlzk


    怎么解决的,也拿出来和大家分享一下吧




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2