|
|
1.1 root 1: /*
2: * Copyright (c) 1980 Regents of the University of California.
3: * All rights reserved. The Berkeley software License Agreement
4: * specifies the terms and conditions for redistribution.
5: *
6: * @(#)rindex_.c 5.2 6/7/85
7: *
8: * find last occurrence of substring in string
9: *
10: * calling sequence:
11: * character*(*) substr, string
12: * indx = rindex (string, substr)
13: * where:
14: * indx will be the index of the first character of the last occurence
15: * of substr in string, or zero if not found.
16: */
17:
18: long rindex_(str, substr, slen, sublen)
19: char *str, *substr; long slen, sublen;
20: {
21: register char *p = str + (slen - sublen);
22: register char *p1, *p2;
23: register int len;
24:
25: if (sublen == 0)
26: return(0L);
27: while (p >= str) {
28: p1 = p;
29: p2 = substr;
30: len = sublen;
31: while ( *p1++ == *p2++ && --len > 0) ;
32: if ( len <= 0 )
33: return((long)(++p - str));
34: p--;
35: }
36: return(0L);
37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.