Compare length of two strings: Difference between revisions

Content added Content deleted
(→‎{{header|Vlang}}: Rename "Vlang" in "V (Vlang)")
(Added EasyLang implementation and moved BASIC)
Line 200: Line 200:
5 hello
5 hello
</pre>
</pre>

=={{header|BASIC}}==
==={{header|Applesoft BASIC}}===
Printing CHR$(14) does nothing by default in Applesoft BASIC. Commodore BASIC appends spaces to numbers, but otherwise the [[Compare_length_of_two_strings#Commodore_BASIC]] code works the same in Applesoft BASIC.
{{out}}
<pre>*** (1) TWO STRINGS ***
LONGER STRING (13)
SHORT STRING (12)


*** (2) MORE THAN 2 STRINGS***
SHE DOESN'T STUDY GERMAN ON MONDAY (34)
EVERY CHILD LIKES AN ICE CREAM (30)
THE COURSE STARTS NEXT SUNDAY (29)
DOES SHE LIVE IN PARIS? (23)
SHE SWIMS EVERY MORNING (23)
THE EARTH IS SPHERICAL (22)
WE SEE THEM EVERY WEEK (22)
HE DOESN'T TEACH MATH (21)
CATS HATE WATER (15)
I LIKE TEA (10)

</pre>
==={{header|Commodore BASIC}}===
{{works with|Applesoft BASIC}}
{{works with|Commodore BASIC|2.0}}
{{works with|Commodore BASIC|3.5}}
<syntaxhighlight lang="gwbasic">0 REM ROSETTACODE.ORG
1 REM COMPARE LENGTH OF TWO STRINGS
2 REM GIVEN TWO STRINGS OF DIFFERENT
3 REM LENGTH, DETERMINE WHICH STRING IS
4 REM LONGER OR SHORTER.
5 REM PRINT BOTH STRINGS AND THEIR
6 REM LENGTH, ONE ON EACH LINE. PRINT
7 REM THE LONGER ONE FIRST.
8 REM
9 REM ********************************
10 REM
20 REM PRINT CHR$(14): REM CHANGE TO LOWER/UPPER CASE CHAR SET
30 GOSUB 200: REM 1 - COMPARE LENGTH OF 2 STRINGS
40 GOSUB 300: REM 2- MORE THAN 2 STRINGS
50 END
200 PRINT"*** (1) TWO STRINGS ***"
210 A$ = "SHORT STRING"
220 B$ = "LONGER STRING"
230 A = LEN(A$)
240 B = LEN(B$)
250 IF A>B THEN PRINT A$;" (";A;")": PRINT B$;" (";B;")"
260 IF A<=B THEN PRINT B$;" (";B;")": PRINT A$;" (";A;")"
270 PRINT: PRINT
280 RETURN
300 PRINT"*** (2) MORE THAN 2 STRINGS***"
310 DIM C$(100)
320 N = 0
330 READ A$
340 IF A$ = "$$$" THEN 400
350 N = N+1
360 C$(N) = A$
370 IF N = 100 THEN 400
380 GOTO 330
390 REM SORT THE STRINGS
400 FOR J=1 TO N-1
410 FOR I=1 TO N-J
420 IF LEN(C$(I)) < LEN(C$(I+1)) THEN A$=C$(I): C$(I)=C$(I+1): C$(I+1)=A$
430 NEXT
440 NEXT
450 REM PRINT OUT THE STRINGS
460 FOR I=1 TO N
470 PRINT C$(I);" (";LEN(C$(I));")"
480 NEXT
490 PRINT: PRINT
500 RETURN
1000 DATA "DOES SHE LIVE IN PARIS?"
1010 DATA "HE DOESN'T TEACH MATH"
1020 DATA "CATS HATE WATER"
1030 DATA "SHE DOESN'T STUDY GERMAN ON MONDAY"
1040 DATA "EVERY CHILD LIKES AN ICE CREAM"
1050 DATA "THE EARTH IS SPHERICAL"
1060 DATA "THE COURSE STARTS NEXT SUNDAY"
1070 DATA "SHE SWIMS EVERY MORNING"
1080 DATA "I LIKE TEA"
1090 DATA "WE SEE THEM EVERY WEEK"
1100 DATA "$$$"</syntaxhighlight>

{{out}}
<pre>
*** (1) TWO STRINGS ***
LONGER STRING ( 13 )
SHORT STRING ( 12 )


*** (2) MORE THAN 2 STRINGS***
SHE DOESN'T STUDY GERMAN ON MONDAY ( 34
)
EVERY CHILD LIKES AN ICE CREAM ( 30 )
THE COURSE STARTS NEXT SUNDAY ( 29 )
DOES SHE LIVE IN PARIS? ( 23 )
SHE SWIMS EVERY MORNING ( 23 )
THE EARTH IS SPHERICAL ( 22 )
WE SEE THEM EVERY WEEK ( 22 )
HE DOESN'T TEACH MATH ( 21 )
CATS HATE WATER ( 15 )
I LIKE TEA ( 10 )
</pre>

==={{header|BASIC256}}===
<syntaxhighlight lang="basic256">subroutine comp(A$, B$)
if length(A$) >= length(B$) then
print A$, length(A$)
print B$, length(B$)
else
print B$, length(B$)
print A$, length(A$)
end if
end subroutine

call comp("abcd", "123456789")</syntaxhighlight>

==={{header|PureBasic}}===
<syntaxhighlight lang="purebasic">Procedure comp(A.s, B.s)
If Len(A) >= Len(B)
PrintN(A + #TAB$ + Str(Len(A)))
PrintN(B + #TAB$ + Str(Len(B)))
Else
PrintN(B + #TAB$ + Str(Len(B)))
PrintN(A + #TAB$ + Str(Len(A)))
EndIf
EndProcedure

OpenConsole()
comp("abcd", "123456789")
Input()
CloseConsole()</syntaxhighlight>

==={{header|QBasic}}===
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
{{works with|True BASIC}}
<syntaxhighlight lang="qbasic">SUB comp(A$, B$)
IF LEN(A$) >= LEN(B$) THEN
PRINT A$, LEN(A$)
PRINT B$, LEN(B$)
ELSE
PRINT B$, LEN(B$)
PRINT A$, LEN(A$)
END IF
END SUB

CALL comp("abcd", "123456789")
END</syntaxhighlight>

==={{header|Run BASIC}}===
<syntaxhighlight lang="runbasic">sub comp A$, B$
if len(A$) >= len(B$) then
print A$; chr$(9); len(A$)
print B$; chr$(9); len(B$)
else
print B$; chr$(9); len(B$)
print A$; chr$(9); len(A$)
end if
end sub

call comp "abcd", "123456789"</syntaxhighlight>

==={{header|True BASIC}}===
{{works with|QBasic}}
<syntaxhighlight lang="qbasic">SUB comp(A$, B$)
IF LEN(A$) >= LEN(B$) THEN
PRINT A$, LEN(A$)
PRINT B$, LEN(B$)
ELSE
PRINT B$, LEN(B$)
PRINT A$, LEN(A$)
END IF
END SUB

CALL comp("abcd", "123456789")
END</syntaxhighlight>
{{out}}
<pre>Igual que la entrada de FreeBASIC.
</pre>

==={{header|Yabasic}}===
<syntaxhighlight lang="yabasic">sub comp(A$, B$)
if len(A$) >= len(B$) then
print A$, chr$(9), len(A$)
print B$, chr$(9), len(B$)
else
print B$, chr$(9), len(B$)
print A$, chr$(9), len(A$)
end if
end sub

comp("abcd", "123456789")</syntaxhighlight>

==={{header|FreeBASIC}}===
<syntaxhighlight lang="freebasic">sub comp( A as string, B as string )
if len(A)>=len(B) then
print A, len(A)
print B, len(B)
else
print B, len(B)
print A, len(A)
end if
end sub

comp( "abcd", "123456789" )</syntaxhighlight>
{{out}}<pre>123456789 9
abcd 4</pre>


=={{header|BQN}}==
=={{header|BQN}}==
Line 434: Line 643:
</pre>
</pre>


=={{header|BASIC}}==
=={{header|EasyLang}}==
<syntaxhighlight lang="easylang">
==={{header|Applesoft BASIC}}===
func stringLength a$ b$ . .
Printing CHR$(14) does nothing by default in Applesoft BASIC. Commodore BASIC appends spaces to numbers, but otherwise the [[Compare_length_of_two_strings#Commodore_BASIC]] code works the same in Applesoft BASIC.
lineA$ = "\"" & a$ & "\" (length: " & len a$ & ")"
{{out}}
lineB$ = "\"" & b$ & "\" (length: " & len b$ & ")"
<pre>*** (1) TWO STRINGS ***
if len a$ >= len b$
LONGER STRING (13)
print lineA$ ; print lineB$
SHORT STRING (12)
else

print lineB$ ; print lineA$

.
*** (2) MORE THAN 2 STRINGS***
.
SHE DOESN'T STUDY GERMAN ON MONDAY (34)
call stringLength "Easy" "Language"
EVERY CHILD LIKES AN ICE CREAM (30)
call stringLength "Rosetta" "Code"
THE COURSE STARTS NEXT SUNDAY (29)
</syntaxhighlight>
DOES SHE LIVE IN PARIS? (23)
SHE SWIMS EVERY MORNING (23)
THE EARTH IS SPHERICAL (22)
WE SEE THEM EVERY WEEK (22)
HE DOESN'T TEACH MATH (21)
CATS HATE WATER (15)
I LIKE TEA (10)

</pre>
==={{header|Commodore BASIC}}===
{{works with|Applesoft BASIC}}
{{works with|Commodore BASIC|2.0}}
{{works with|Commodore BASIC|3.5}}
<syntaxhighlight lang="gwbasic">0 REM ROSETTACODE.ORG
1 REM COMPARE LENGTH OF TWO STRINGS
2 REM GIVEN TWO STRINGS OF DIFFERENT
3 REM LENGTH, DETERMINE WHICH STRING IS
4 REM LONGER OR SHORTER.
5 REM PRINT BOTH STRINGS AND THEIR
6 REM LENGTH, ONE ON EACH LINE. PRINT
7 REM THE LONGER ONE FIRST.
8 REM
9 REM ********************************
10 REM
20 REM PRINT CHR$(14): REM CHANGE TO LOWER/UPPER CASE CHAR SET
30 GOSUB 200: REM 1 - COMPARE LENGTH OF 2 STRINGS
40 GOSUB 300: REM 2- MORE THAN 2 STRINGS
50 END
200 PRINT"*** (1) TWO STRINGS ***"
210 A$ = "SHORT STRING"
220 B$ = "LONGER STRING"
230 A = LEN(A$)
240 B = LEN(B$)
250 IF A>B THEN PRINT A$;" (";A;")": PRINT B$;" (";B;")"
260 IF A<=B THEN PRINT B$;" (";B;")": PRINT A$;" (";A;")"
270 PRINT: PRINT
280 RETURN
300 PRINT"*** (2) MORE THAN 2 STRINGS***"
310 DIM C$(100)
320 N = 0
330 READ A$
340 IF A$ = "$$$" THEN 400
350 N = N+1
360 C$(N) = A$
370 IF N = 100 THEN 400
380 GOTO 330
390 REM SORT THE STRINGS
400 FOR J=1 TO N-1
410 FOR I=1 TO N-J
420 IF LEN(C$(I)) < LEN(C$(I+1)) THEN A$=C$(I): C$(I)=C$(I+1): C$(I+1)=A$
430 NEXT
440 NEXT
450 REM PRINT OUT THE STRINGS
460 FOR I=1 TO N
470 PRINT C$(I);" (";LEN(C$(I));")"
480 NEXT
490 PRINT: PRINT
500 RETURN
1000 DATA "DOES SHE LIVE IN PARIS?"
1010 DATA "HE DOESN'T TEACH MATH"
1020 DATA "CATS HATE WATER"
1030 DATA "SHE DOESN'T STUDY GERMAN ON MONDAY"
1040 DATA "EVERY CHILD LIKES AN ICE CREAM"
1050 DATA "THE EARTH IS SPHERICAL"
1060 DATA "THE COURSE STARTS NEXT SUNDAY"
1070 DATA "SHE SWIMS EVERY MORNING"
1080 DATA "I LIKE TEA"
1090 DATA "WE SEE THEM EVERY WEEK"
1100 DATA "$$$"</syntaxhighlight>

{{out}}
{{out}}
<pre>
<pre>
"Language" (length: 8)
*** (1) TWO STRINGS ***
"Easy" (length: 4)
LONGER STRING ( 13 )
"Rosetta" (length: 7)
SHORT STRING ( 12 )
"Code" (length: 4)


*** (2) MORE THAN 2 STRINGS***
SHE DOESN'T STUDY GERMAN ON MONDAY ( 34
)
EVERY CHILD LIKES AN ICE CREAM ( 30 )
THE COURSE STARTS NEXT SUNDAY ( 29 )
DOES SHE LIVE IN PARIS? ( 23 )
SHE SWIMS EVERY MORNING ( 23 )
THE EARTH IS SPHERICAL ( 22 )
WE SEE THEM EVERY WEEK ( 22 )
HE DOESN'T TEACH MATH ( 21 )
CATS HATE WATER ( 15 )
I LIKE TEA ( 10 )
</pre>
</pre>

==={{header|BASIC256}}===
<syntaxhighlight lang="basic256">subroutine comp(A$, B$)
if length(A$) >= length(B$) then
print A$, length(A$)
print B$, length(B$)
else
print B$, length(B$)
print A$, length(A$)
end if
end subroutine

call comp("abcd", "123456789")</syntaxhighlight>

==={{header|PureBasic}}===
<syntaxhighlight lang="purebasic">Procedure comp(A.s, B.s)
If Len(A) >= Len(B)
PrintN(A + #TAB$ + Str(Len(A)))
PrintN(B + #TAB$ + Str(Len(B)))
Else
PrintN(B + #TAB$ + Str(Len(B)))
PrintN(A + #TAB$ + Str(Len(A)))
EndIf
EndProcedure

OpenConsole()
comp("abcd", "123456789")
Input()
CloseConsole()</syntaxhighlight>

==={{header|QBasic}}===
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
{{works with|True BASIC}}
<syntaxhighlight lang="qbasic">SUB comp(A$, B$)
IF LEN(A$) >= LEN(B$) THEN
PRINT A$, LEN(A$)
PRINT B$, LEN(B$)
ELSE
PRINT B$, LEN(B$)
PRINT A$, LEN(A$)
END IF
END SUB

CALL comp("abcd", "123456789")
END</syntaxhighlight>

==={{header|Run BASIC}}===
<syntaxhighlight lang="runbasic">sub comp A$, B$
if len(A$) >= len(B$) then
print A$; chr$(9); len(A$)
print B$; chr$(9); len(B$)
else
print B$; chr$(9); len(B$)
print A$; chr$(9); len(A$)
end if
end sub

call comp "abcd", "123456789"</syntaxhighlight>

==={{header|True BASIC}}===
{{works with|QBasic}}
<syntaxhighlight lang="qbasic">SUB comp(A$, B$)
IF LEN(A$) >= LEN(B$) THEN
PRINT A$, LEN(A$)
PRINT B$, LEN(B$)
ELSE
PRINT B$, LEN(B$)
PRINT A$, LEN(A$)
END IF
END SUB

CALL comp("abcd", "123456789")
END</syntaxhighlight>
{{out}}
<pre>Igual que la entrada de FreeBASIC.
</pre>

==={{header|Yabasic}}===
<syntaxhighlight lang="yabasic">sub comp(A$, B$)
if len(A$) >= len(B$) then
print A$, chr$(9), len(A$)
print B$, chr$(9), len(B$)
else
print B$, chr$(9), len(B$)
print A$, chr$(9), len(A$)
end if
end sub

comp("abcd", "123456789")</syntaxhighlight>

==={{header|FreeBASIC}}===
<syntaxhighlight lang="freebasic">sub comp( A as string, B as string )
if len(A)>=len(B) then
print A, len(A)
print B, len(B)
else
print B, len(B)
print A, len(A)
end if
end sub

comp( "abcd", "123456789" )</syntaxhighlight>
{{out}}<pre>123456789 9
abcd 4</pre>


=={{header|Fortran}}==
=={{header|Fortran}}==