Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
74
Task/String-matching/PureBasic/string-matching.basic
Normal file
74
Task/String-matching/PureBasic/string-matching.basic
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
Procedure StartsWith(String1$, String2$)
|
||||
Protected Result
|
||||
If FindString(String1$, String2$, 1) =1 ; E.g Found in possition 1
|
||||
Result =CountString(String1$, String2$)
|
||||
EndIf
|
||||
ProcedureReturn Result
|
||||
EndProcedure
|
||||
|
||||
Procedure EndsWith(String1$, String2$)
|
||||
Protected Result, dl=Len(String1$)-Len(String2$)
|
||||
If dl>=0 And Right(String1$, Len(String2$))=String2$
|
||||
Result =CountString(String1$, String2$)
|
||||
EndIf
|
||||
ProcedureReturn Result
|
||||
EndProcedure
|
||||
|
||||
; And a verification
|
||||
|
||||
If OpenConsole()
|
||||
PrintN(Str(StartsWith("Rosettacode", "Rosetta"))) ; = 1
|
||||
PrintN(Str(StartsWith("Rosettacode", "code"))) ; = 0
|
||||
PrintN(Str(StartsWith("eleutherodactylus cruralis", "e"))) ; = 3
|
||||
PrintN(Str(EndsWith ("Rosettacode", "Rosetta"))) ; = 0
|
||||
PrintN(Str(EndsWith ("Rosettacode", "code"))) ; = 1
|
||||
PrintN(Str(EndsWith ("Rosettacode", "e"))) ; = 2
|
||||
|
||||
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
|
||||
CloseConsole()
|
||||
EndIf
|
||||
|
||||
; An alternate and more complete solution:
|
||||
|
||||
Procedure startsWith(string1$, string2$)
|
||||
;returns one if string1$ starts with string2$, otherwise returns zero
|
||||
If FindString(string1$, string2$, 1) = 1
|
||||
ProcedureReturn 1
|
||||
EndIf
|
||||
ProcedureReturn 0
|
||||
EndProcedure
|
||||
|
||||
Procedure contains(string1$, string2$, location = 0)
|
||||
;returns the location of the next occurrence of string2$ in string1$ starting from location,
|
||||
;or zero if no remaining occurrences of string2$ are found in string1$
|
||||
ProcedureReturn FindString(string1$, string2$, location + 1)
|
||||
EndProcedure
|
||||
|
||||
Procedure endsWith(string1$, string2$)
|
||||
;returns one if string1$ ends with string2$, otherwise returns zero
|
||||
Protected ls = Len(string2$)
|
||||
If Len(string1$) - ls >= 0 And Right(string1$, ls) = string2$
|
||||
ProcedureReturn 1
|
||||
EndIf
|
||||
ProcedureReturn 0
|
||||
EndProcedure
|
||||
|
||||
If OpenConsole()
|
||||
PrintN(Str(startsWith("RosettaCode", "Rosetta"))) ; = 1, true
|
||||
PrintN(Str(startsWith("RosettaCode", "Code"))) ; = 0, false
|
||||
|
||||
PrintN("")
|
||||
PrintN(Str(contains("RosettaCode", "luck"))) ; = 0, no occurrences
|
||||
Define location
|
||||
Repeat
|
||||
location = contains("eleutherodactylus cruralis", "e", location)
|
||||
PrintN(Str(location)) ;display each occurrence: 1, 3, 7, & 0 (no more occurrences)
|
||||
Until location = 0
|
||||
|
||||
PrintN("")
|
||||
PrintN(Str(endsWith ("RosettaCode", "Rosetta"))) ; = 0, false
|
||||
PrintN(Str(endsWith ("RosettaCode", "Code"))) ; = 1, true
|
||||
|
||||
Print(#CRLF$ + #CRLF$ + "Press ENTER to exit"): Input()
|
||||
CloseConsole()
|
||||
EndIf
|
||||
Loading…
Add table
Add a link
Reference in a new issue