diff options
Diffstat (limited to 'src/base/string/raw')
-rw-r--r-- | src/base/string/raw/erfindc.c | 17 | ||||
-rw-r--r-- | src/base/string/raw/nrfindc.c | 15 | ||||
-rw-r--r-- | src/base/string/raw/rfindc.c | 15 |
3 files changed, 47 insertions, 0 deletions
diff --git a/src/base/string/raw/erfindc.c b/src/base/string/raw/erfindc.c new file mode 100644 index 0000000..be04cde --- /dev/null +++ b/src/base/string/raw/erfindc.c @@ -0,0 +1,17 @@ +#include <u.h> +#include <base.h> + +char* +str·erfindc(char *s, char *e, int c) +{ + int n; + if(e < s) + return nil; + + n = e-s; + c = (uchar)c; + while(n--) + if(s[n]==c) + return s+n; + return nil; +} diff --git a/src/base/string/raw/nrfindc.c b/src/base/string/raw/nrfindc.c new file mode 100644 index 0000000..66c0bee --- /dev/null +++ b/src/base/string/raw/nrfindc.c @@ -0,0 +1,15 @@ +#include <u.h> +#include <base.h> + +char* +str·nrfindc(char *s, intptr n, int c) +{ + if(n < 0) + return nil; + + c = (uchar)c; + while(n--) + if(s[n]==c) + return s+n; + return nil; +} diff --git a/src/base/string/raw/rfindc.c b/src/base/string/raw/rfindc.c new file mode 100644 index 0000000..252be67 --- /dev/null +++ b/src/base/string/raw/rfindc.c @@ -0,0 +1,15 @@ +#include <u.h> +#include <base.h> + +char* +str·rfindc(char *s, int c) +{ + int n; + + n = str·len(s); + c = (uchar)c; + while(n--) + if(s[n]==c) + return s+n; + return nil; +} |