diff options
author | Araq <rumpf_a@web.de> | 2014-12-20 22:39:14 +0100 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2014-12-20 22:39:14 +0100 |
commit | 18f00a1fa1d8a71c74340d7803a29af81d5f9860 (patch) | |
tree | c82ee02759171ef590e1f614f5a637d8dd3b5bd6 /lib | |
parent | 7deb8b2e7b61a93ee42d5cadbc4170f83ac638a0 (diff) | |
parent | 7d80a26b3fad2859208b3fd53f5fef61048d62c9 (diff) | |
download | Nim-18f00a1fa1d8a71c74340d7803a29af81d5f9860.tar.gz |
Merge branch 'devel' of https://github.com/Araq/Nimrod into devel
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/strutils.nim | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/pure/strutils.nim b/lib/pure/strutils.nim index 55a204b4c..4f449cb0e 100644 --- a/lib/pure/strutils.nim +++ b/lib/pure/strutils.nim @@ -803,6 +803,16 @@ proc rfind*(s, sub: string, start: int = -1): int {.noSideEffect.} = if result != -1: return return -1 +proc rfind*(s: string, sub: char, start: int = -1): int {.noSideEffect, + rtl.} = + ## Searches for `sub` in `s` in reverse starting at position `start`. + ## + ## Searching is case-sensitive. If `sub` is not in `s`, -1 is returned. + let realStart = if start == -1: s.len-1 else: start + for i in countdown(realStart, 0): + if sub == s[i]: return i + return -1 + proc count*(s: string, sub: string, overlapping: bool = false): int {.noSideEffect, rtl, extern: "nsuCountString".} = ## Count the occurences of a substring `sub` in the string `s`. |