Useful string » History » Version 1
iri, 12/17/2011 10:32 PM
| 1 | 1 | iri | h1. Useful string functions |
|---|---|---|---|
| 2 | |||
| 3 | * Remove the last character of a string : |
||
| 4 | |||
| 5 | <pre> |
||
| 6 | fun removeLastChar(s)= |
||
| 7 | substr s 0 (strlen s)-1;; |
||
| 8 | </pre> |
||
| 9 | |||
| 10 | * Compare the last character. Return 1 if it is the same. |
||
| 11 | |||
| 12 | <pre> |
||
| 13 | fun testLastChar(s, c)= |
||
| 14 | let substr s (strlen s)-1 1 -> ch in |
||
| 15 | !strcmp c ch;; |
||
| 16 | </pre> |
||
| 17 | |||
| 18 | * Return the position of the last occurence of a character |
||
| 19 | |||
| 20 | <pre> |
||
| 21 | fun getLastPosChar(string, char)= |
||
| 22 | let 0 -> i in |
||
| 23 | let (strfind char string 0) + 1 -> npos in |
||
| 24 | while npos != nil do |
||
| 25 | ( |
||
| 26 | set i = npos; |
||
| 27 | set npos = (strfind char string npos) + 1; |
||
| 28 | i |
||
| 29 | );; |
||
| 30 | </pre> |
||
| 31 | |||
| 32 | * Return the position of the last / |
||
| 33 | |||
| 34 | <pre> |
||
| 35 | fun getLastPosSlash(s)= |
||
| 36 | if s == nil then nil else |
||
| 37 | let strlen s -> n in |
||
| 38 | let n-1 -> i in |
||
| 39 | ( |
||
| 40 | while (i >=0) && ((nth_char s i) != '/) do |
||
| 41 | set i = i-1; |
||
| 42 | i |
||
| 43 | );; |
||
| 44 | </pre> |
||
| 45 | |||
| 46 | * Return the position of the last . |
||
| 47 | |||
| 48 | <pre> |
||
| 49 | fun getLastPosPoint(s)= |
||
| 50 | if s == nil then nil else |
||
| 51 | let (strlen s) - 1 -> i in |
||
| 52 | ( |
||
| 53 | while (i >= 0) && ((nth_char s i) != '.) do |
||
| 54 | set i = i - 1; |
||
| 55 | i |
||
| 56 | );; |
||
| 57 | </pre> |
||
| 58 | |||
| 59 | * returns whether a string has only the characters of a pattern : fun [S S] I |
||
| 60 | |||
| 61 | <pre> |
||
| 62 | fun stringIsPattern(s, pattern)= |
||
| 63 | let 0 -> i in |
||
| 64 | let 1 -> r in |
||
| 65 | ( |
||
| 66 | while ((i < (strlen s)) && (r == 1)) do |
||
| 67 | let strfind substr s i 1 pattern 0 -> p in |
||
| 68 | if p == nil then |
||
| 69 | set r = 0 |
||
| 70 | else |
||
| 71 | set i = i+1; |
||
| 72 | r |
||
| 73 | );; |
||
| 74 | </pre> |
||
| 75 | |||
| 76 | Author : iri |
||
| 77 | Date : december 2011 |
||
| 78 | |||
| 79 | *Return to [[Examples]]* |