Strip a set of characters from a string: Difference between revisions
Content added Content deleted
Not a robot (talk | contribs) (Add Draco) |
Not a robot (talk | contribs) (Add PL/M) |
||
Line 1,974: | Line 1,974: | ||
return (substr(out_text, 1, j) ); |
return (substr(out_text, 1, j) ); |
||
end strip_chars;</lang> |
end strip_chars;</lang> |
||
=={{header|PL/M}}== |
|||
<lang pli>100H: |
|||
BDOS: PROCEDURE(F,A); DECLARE F BYTE, A ADDRESS; GO TO 5; END BDOS; |
|||
EXIT: PROCEDURE; GO TO 0; END EXIT; |
|||
PRINT: PROCEDURE(S); DECLARE S ADDRESS; CALL BDOS(9,S); END PRINT; |
|||
DECLARE TRUE LITERALLY '0FFH', FALSE LITERALLY '0'; |
|||
/* SEE IF STRING CONTAINS CHARACTER */ |
|||
CONTAINS: PROCEDURE(STR, CHR) BYTE; |
|||
DECLARE STR ADDRESS, (SCH BASED STR, CHR) BYTE; |
|||
DO WHILE SCH <> '$'; |
|||
IF SCH = CHR THEN RETURN TRUE; |
|||
STR = STR + 1; |
|||
END; |
|||
RETURN FALSE; |
|||
END CONTAINS; |
|||
/* STRIP CHARACTERS FROM A STRING */ |
|||
STRIP$CHARS: PROCEDURE(STR, CHARS, OUTBUF); |
|||
DECLARE (STR, CHARS, OUTBUF) ADDRESS; |
|||
DECLARE (IN$CH BASED STR, OUT$CH BASED OUTBUF) BYTE; |
|||
DO WHILE IN$CH <> '$'; |
|||
IF NOT CONTAINS(CHARS, IN$CH) THEN DO; |
|||
OUT$CH = IN$CH; |
|||
OUTBUF = OUTBUF + 1; |
|||
END; |
|||
STR = STR + 1; |
|||
END; |
|||
OUT$CH = '$'; |
|||
END STRIP$CHARS; |
|||
/* TEST */ |
|||
DECLARE BUF (128) ADDRESS; |
|||
/* 8080 PL/M DOES NOT SUPPORT LOWERCASE OR EXCLAMATION MARK */ |
|||
CALL STRIP$CHARS( |
|||
.'SHE WAS A SOUL STRIPPER. SHE TOOK MY HEART.$', |
|||
.'AEI$', |
|||
.BUF); |
|||
CALL PRINT(.BUF); |
|||
CALL EXIT; |
|||
EOF</lang> |
|||
{{out}} |
|||
<pre>SH WS SOUL STRPPR. SH TOOK MY HRT.</pre> |
|||
=={{header|Powershell}}== |
=={{header|Powershell}}== |