Strip a set of characters from a string: Difference between revisions

Add PL/M
(Add Draco)
(Add PL/M)
Line 1,974:
return (substr(out_text, 1, j) );
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}}==
2,096

edits