Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
26
Task/String-matching/REXX/string-matching.rexx
Normal file
26
Task/String-matching/REXX/string-matching.rexx
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/*REXX program demonstrates some basic character string testing (for matching). */
|
||||
parse arg A B /*obtain A and B from the command line.*/
|
||||
say 'string A = ' A /*display string A to the terminal.*/
|
||||
say 'string B = ' B /* " " B " " " */
|
||||
say copies('░', 70) /*display a line separator (fence). */
|
||||
LB= length(B) /*get the length of string B in bytes*/
|
||||
if left(A, LB)==B then say 'string A starts with string B'
|
||||
else say "string A doesn't start with string B"
|
||||
say /* [↓] another method using COMPARE BIF*/
|
||||
p= pos(B, A)
|
||||
if p==0 then say "string A doesn't contain string B"
|
||||
else say 'string A contains string B (starting in position' p")"
|
||||
say
|
||||
if right(A, LB)==B then say 'string A ends with string B'
|
||||
else say "string A doesn't end with string B"
|
||||
say
|
||||
$=; p= 0; do until p==0; p= pos(B, A, p+1)
|
||||
if p\==0 then $= $',' p
|
||||
end /*until*/
|
||||
|
||||
$= space( strip($, 'L', ",") ) /*elide extra blanks and leading comma.*/
|
||||
#= words($) /*obtain number of words in $ string.*/
|
||||
|
||||
if #==0 then say "string A doesn't contain string B"
|
||||
else say 'string A contains string B ' # " time"left('s', #>1),
|
||||
"(at position"left('s', #>1) $")" /*stick a fork in it, we're all done. */
|
||||
Loading…
Add table
Add a link
Reference in a new issue