如果我扫描NDIA' in' INDIAN'通过使用%scan(),返回大于0的值。如果我在数组中使用%lookup()执行相同操作,则返回0。为什么呢?
计划1
D VAR1 s 10a inz('INDIAN')
D S1 S 10S 0
C 'NDIA' SCAN VAR1 S1
C S1 DSPLY
/free
*inlr = *on;
/end-free
计划2
D ARR1 s 10a DIM(5)
D S1 S 10S 0
C EVAL ARR1(1) = 'AMERICA'
C EVAL ARR1(2) = 'INDIA'
C EVAL ARR1(3) = 'CHINA'
/free
S1 = %LOOKUP('NDIA':ARR1);
DSPLY S1;
*inlr = *on;
/end-free
两个计划有什么区别?
答案 0 :(得分:4)
%lookup()查找完全匹配,而不是部分匹配。如果您更改%lookup以查找“INDIA”,它将返回匹配。
顺便说一下,没有理由在两个示例中使用Fixed Format C规范。他们可以完全/自由。