Jump to content

String comparison: Difference between revisions

String comparison in various BASIC dialents (BASIC256, QBasic, True BASIC and Yabasic)
(String comparison in various BASIC dialents (BASIC256, QBasic, True BASIC and Yabasic))
Line 1,077:
For case sensitive comparisons {{works with|Applesoft BASIC}}
Applesoft BASIC does not have a built in UPPER$ function.
 
==={{header|BASIC256}}===
{{trans|FreeBASIC}}
<lang freebasic>function StringCompare(s1, s2, ignoreCase)
if ignoreCase then
s = lower(s1)
t = lower(s2)
else
s = s1
t = s2
end if
if s < t then return " comes before "
if s = t then return " is equal to "
return " comes after "
end function
 
s1 = "Dog" : s2 = "Dog"
print s1; StringCompare(s1, s2, False); s2
s2 = "Cat"
print s1; StringCompare(s1, s2, False); s2
s2 = "Rat"
print s1; StringCompare(s1, s2, False); s2
s2 = "dog"
print s1; StringCompare(s1, s2, False); s2
print s1; StringCompare(s1, s2, True); s2; " if case is ignored"
s1 = "Dog" : s2 = "Pig"
s3 = StringCompare(s1, s2, False)
if s3 <> " is equal to " then print s1; " is not equal to "; s2
end</lang>
{{out}}
<pre>Igual que la entrada de FreeBASIC.</pre>
 
==={{header|QBasic}}===
{{works with|QBasic|1.1}}
{{works with|QuickBasic|4.5}}
{{trans|FreeBASIC}}
<lang QBasic>FUNCTION StringCompare$ (s1 AS STRING, s2 AS STRING, ignoreCase)
DIM s AS STRING, t AS STRING
IF ignoreCase THEN
s = LCASE$(s1)
t = LCASE$(s2)
ELSE
s = s1
t = s2
END IF
IF s < t THEN StringCompare$ = " comes before ": EXIT FUNCTION
IF s = t THEN StringCompare$ = " is equal to ": EXIT FUNCTION
StringCompare$ = " comes after "
END FUNCTION
 
DIM s1 AS STRING, s2 AS STRING, s3 AS STRING
 
s1 = "Dog": s2 = "Dog"
PRINT s1; StringCompare$(s1, s2, 0); s2
s2 = "Cat"
PRINT s1; StringCompare$(s1, s2, 0); s2
s2 = "Rat"
PRINT s1; StringCompare$(s1, s2, 0); s2
s2 = "dog"
PRINT s1; StringCompare$(s1, s2, 0); s2
PRINT s1; StringCompare$(s1, s2, 1); s2; " if case is ignored"
s1 = "Dog": s2 = "Pig"
s3 = StringCompare$(s1, s2, 0)
IF s3 <> " is equal to " THEN PRINT s1; " is not equal to "; s2
END</lang>
{{out}}
<pre>Igual que la entrada de FreeBASIC.</pre>
 
==={{header|True BASIC}}===
{{works with|QBasic}}
{{trans|FreeBASIC}}
<lang qbasic>FUNCTION StringCompare$(s1$, s2$, ignorecase)
IF ignorecase = True then
LET s$ = LCASE$(s1$)
LET t$ = LCASE$(s2$)
ELSE
LET s$ = s1$
LET t$ = s2$
END IF
IF s$ < t$ then
LET StringCompare$ = " comes before "
ELSE
IF s$ = t$ then
LET StringCompare$ = " is equal to "
ELSE
LET StringCompare$ = " comes after "
END IF
END IF
END FUNCTION
 
LET s1$ = "Dog"
LET s2$ = "Dog"
PRINT s1$; StringCompare$(s1$, s2$, False); s2$
LET s2$ = "Cat"
PRINT s1$; StringCompare$(s1$, s2$, False); s2$
LET s2$ = "Rat"
PRINT s1$; StringCompare$(s1$, s2$, False); s2$
LET s2$ = "dog"
PRINT s1$; StringCompare$(s1$, s2$, False); s2$
PRINT s1$; StringCompare$(s1$, s2$, True); s2$; " if case is ignored"
LET s1$ = "Dog"
LET s2$ = "Pig"
LET s3$ = StringCompare$(s1$, s2$, 0)
IF s3$ <> " is equal to " then PRINT s1$; " is not equal to "; s2$
END</lang>
{{out}}
<pre>Igual que la entrada de FreeBASIC.</pre>
 
==={{header|Yabasic}}===
{{trans|FreeBASIC}}
<lang freebasic>sub StringCompare$(s1$, s2$, ignoreCase)
local s$, t$
if ignoreCase then
s$ = lower$(s1$)
t$ = lower$(s2$)
else
s$ = s1$
t$ = s2$
end if
if s$ < t$ return " comes before "
if s$ = t$ return " is equal to "
return " comes after "
end sub
 
s1$ = "Dog" : s2$ = "Dog"
print s1$, StringCompare$(s1$, s2$, False), s2$
s2$ = "Cat"
print s1$, StringCompare$(s1$, s2$, False), s2$
s2$ = "Rat"
print s1$, StringCompare$(s1$, s2$, False), s2$
s2$ = "dog"
print s1$, StringCompare$(s1$, s2$, False), s2$
print s1$, StringCompare$(s1$, s2$, True), s2$, " if case is ignored"
s1$ = "Dog" : s2$ = "Pig"
s3$ = StringCompare$(s1$, s2$, False)
if s3$ <> " is equal to " print s1$, " is not equal to ", s2$
end</lang>
{{out}}
<pre>Igual que la entrada de FreeBASIC.</pre>
 
=={{header|BBC BASIC}}==
2,133

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.