SpiceInt ncposr_c ( ConstSpiceChar * str,
ConstSpiceChar * chars,
SpiceInt start )
Find the first occurrence in a string of a character NOT belonging
to a collection of characters, starting at a specified location,
searching in reverse.
SCANNING
CHARACTER
SEARCH
UTILITY
VARIABLE I/O DESCRIPTION
-------- --- --------------------------------------------------
str I Any character string.
chars I A collection of characters.
start I Position to begin looking for one of chars.
The function returns the index of the last character of str
at or before index start that is not in the collection chars.
str is any character string.
chars is a character string containing a collection
of characters. Spaces in chars are significant,
including trailing blanks. The order in which
characters are listed is not significant.
start is the position in str to begin looking for one of
the characters in chars. start may range from 0
to n-1, where n is the number of characters in str.
The function returns the index of the last character of str (at or
before index start) that is not one of the characters in the string
chars. The returned value normally ranges from 0 to n-1, where n is
the number of characters in str. If none of the characters is found,
the function returns -1.
None.
1) The error SPICE(NULLPOINTER) is signaled if either of
the input string pointers is null.
2) If start is less than 0, ncposr_c returns -1.
3) If start is greater than or equal to the length of the string,
the search begins at the last character of the string.
4) The function returns -1 if either of the input strings is empty.
None.
ncposr_c is case sensitive.
An entire family of related CSPICE routines
cpos_c
cposr_c
ncpos_c
ncposr_c
pos_c
posr_c
is described in the Required Reading.
Let string == "BOB, JOHN, TED, AND MARTIN...."
012345678901234567890123456789
Let chars == "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
Normal (sequential) searching:
------------------------------
ncposr_c( string, ' ,', 29 ) = 29
ncposr_c( string, ' ,', 28 ) = 28
ncposr_c( string, ' ,', 27 ) = 27
ncposr_c( string, ' ,', 26 ) = 26
ncposr_c( string, ' ,', 25 ) = 19
ncposr_c( string, ' ,', 18 ) = 15
ncposr_c( string, ' ,', 14 ) = 14
ncposr_c( string, ' ,', 13 ) = 10
ncposr_c( string, ' ,', 9 ) = 9
ncposr_c( string, ' ,', 8 ) = 4
ncposr_c( string, ' ,', 3 ) = 3
ncposr_c( string, ' ,', 2 ) = -1
start out of bounds:
--------------------
ncposr_c( string, ' ,', -1 ) = -1
ncposr_c( string, ' ,', -5 ) = -1
ncposr_c( string, ' ,', 30 ) = 29
ncposr_c( string, ' ,', 122 ) = 29
None.
None.
N.J. Bachman (JPL)
W.L. Taber (JPL)
-CSPICE Version 1.0.0, 27-AUG-2002 (NJB) (WLT)
backward search for position of unlisted character
Link to routine ncposr_c source file ncposr_c.c
|