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]]* |