RosettaCodeData/Task/Determine-if-a-string-is-collapsible/ANSI-BASIC/determine-if-a-string-is-collapsible.basic
2026-04-30 12:34:36 -04:00

38 lines
1.2 KiB
Text

100 REM Determine if a string is collapsible
110 DECLARE EXTERNAL FUNCTION Collapse$
120 READ N
130 FOR J = 1 TO N
140 READ StrIn$
150 LET StrOut$ = Collapse$(StrIn$)
160 PRINT LEN(StrIn$); "<<<"; StrIn$; ">>>"
170 PRINT LEN(StrOut$); "<<<"; StrOut$; ">>>"
180 PRINT
190 NEXT J
200 DATA 5
210 DATA ""
220 DATA "'If I were two-faced, would I be wearing this one?' --- Abraham Lincoln "
230 DATA "..1111111111111111111111111111111111111111111111111111111111111117777888"
240 DATA "I never give 'em hell, I just tell the truth, and they think it's hell. "
250 DATA " --- Harry S Truman "
260 END
270 !
280 EXTERNAL FUNCTION Collapse$(StrIn$)
290 IF StrIn$ = "" THEN
300 LET StrOut$ = StrIn$
310 ELSE
320 LET StrOut$ = REPEAT$(" ", LEN(StrIn$))
330 LET A$ = StrIn$(1:1)
340 LET StrOut$(1:1) = A$
350 LET T = 2
360 FOR I = 2 TO LEN(StrIn$)
370 LET B$ = StrIn$(I:I)
380 IF A$ <> B$ THEN
390 LET StrOut$(T:T) = B$
400 LET T = T + 1
410 LET A$ = B$
420 END IF
430 NEXT I
440 LET StrOut$ = StrOut$(1 : T - 1)
450 END IF
460 LET Collapse$ = StrOut$
470 END FUNCTION