在线等啊在线等:二维数组在LR中不支持么?
我用LR9.1录制一个脚本,需要用到二维数组,我用下面的方法定义的char s11[]="0_1_0";
char s12[]="0_2_0";
char s13[]="0_3_0";
char *array[]={s11,s12,s13};
但是一编译就报错,报错信息如下:
Action.c (14): initializer must be constant
请教下,LR不支持二维数组么?我想做个循环比较,用buffer中的字符串和array中的字符串一个个比较,找到相同的,应该怎么做才能实现呢?
[ 本帖最后由 测霸 于 2009-11-20 11:03 编辑 ] 我把其他的代码都屏蔽了,单独写了个比较的程序,编译不通过,不明白啊,不明白,有LR的童鞋们放上去执行下看看啊~
char s11[]="0_1_0";
char s12[]="0_2_0";
char s13[]="0_3_0";
int j;
int result;
char *array[]={s11,s12,s13};
char buffer[]="0_2_0";
for (j=0;j<3;j++)
{
result = strcmp( buffer,*array);
if (result==0) {
lr_output_message("相等");
else
continue;
}
[ 本帖最后由 测霸 于 2009-11-20 11:23 编辑 ] 代码声明得有问题,不用这么复杂。楼主是要定义字符串数组,而在C中是没有string这种类型来定义字符串数组的,所以只能用char来定义一个二维的字符数组,便可得到一个一维的字符串数组。
楼主可参考以下代码,理解其意图:
int j, result;
char str = {"0_1_0","0_2_0","0_3_0"};
for (j=0; j<3; j++) {
result = strcmp("0_2_0", str);
if (result == 0)
lr_output_message("相等");
else
lr_output_message("不相等");
} 真不愧是强哥啊。。 多谢强哥,问题终于解决了. 饿。。。。惊现云层老师。
页:
[1]