Index Page bsrchc_c
A B C D E F G H I J K L M N O P Q R S T U V W X
Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input | Detailed_Output Parameters Exceptions Files Particulars Examples | Restrictions Literature_References Author_and_Institution Version Index_Entries
#### Procedure
       SpiceInt bsrchc_c ( ConstSpiceChar  * value,
                           SpiceInt          ndim,
                           SpiceInt          lenvals,
                           const void      * array   )
#### Abstract
       Do a binary earch for a given value within a character string array.
       Return the index of the first matching array entry, or -1 if the key
       value was not found.
#### Required_Reading
       None.
#### Keywords
       ARRAY,  SEARCH
#### Brief_I/O
       VARIABLE  I/O              DESCRIPTION
       --------  ---  --------------------------------------------------
       value      I   Key value to be found in array.
       ndim       I   Dimension of array.
       lenvals    I   String length.
       array      I   Character string array to search.

       The function returns the index of the first matching array
       element or -1 if the value is not found.
#### Detailed_Input
       value       is the key value to be found in the array.  Trailing blanks
                   in this key are not significant:  string matches found
                   by this routine do not require trailing blanks in
                   value to match that in the corresponding element of array.

       ndim        is the dimension of the array.

       lenvals     is the declared length of the strings in the input
                   string array, including null terminators.  The input
                   array should be declared with dimension

                      [ndim][lenvals]

       array       is the array of character srings to be searched.  Trailing
                   blanks in the strings in this array are not significant.
#### Detailed_Output
       The function returns the index of the specified value in the input array.
       Array indices range from zero to ndim-1.

       If the input array does not contain the specified value, the function
       returns -1.

       If the input array contains more than one occurrence of the specified
       value, the returned index may point to any of the occurrences.
#### Parameters
       None.
#### Exceptions
       1) If ndim < 1 the function value is -1.  This is not considered
          an error.

       2) If input key value pointer is null, the error SPICE(NULLPOINTER) will
          be signaled.  The function returns -1.

       3) The input key value may have length zero.  This case is not
          considered an error.

       4) If the input array pointer is null,  the error SPICE(NULLPOINTER) will
          be signaled.  The function returns -1.

       5) If the input array string's length is less than 2, the error
          SPICE(STRINGTOOSHORT) will be signaled.  The function returns -1.
#### Files
       None
#### Particulars
       A binary search is performed on the input array. If an
       element of the array is found to match the input value, the
       index of that element is returned. If no matching element
       is found, -1 is returned.
#### Examples
       Let array be a character array of dimension

         [5][lenvals]

       which contains the following elements:

          "BOHR"
          "EINSTEIN"
          "FEYNMAN"
          "GALILEO"
          "NEWTON"

       Then

          bsrchc_c ( "NEWTON",   5, lenvals, array )    ==   4
          bsrchc_c ( "EINSTEIN", 5, lenvals, array )    ==   1
          bsrchc_c ( "GALILEO",  5, lenvals, array )    ==   3
          bsrchc_c ( "Galileo",  5, lenvals, array )    ==  -1
          bsrchc_c ( "BETHE",    5, lenvals, array )    ==  -1
#### Restrictions
       1)  The input array is assumed to be sorted in increasing order. If
           this condition is not met, the results of bsrchc_c are unpredictable.

       2)  String comparisons performed by this routine are Fortran-style:
           trailing blanks in the input array or key value are ignored.
           This gives consistent behavior with CSPICE code generated by
           the f2c translator, as well as with the Fortran SPICE Toolkit.

           Note that this behavior is not identical to that of the ANSI
           C library functions strcmp and strncmp.
#### Literature_References
       None
#### Author_and_Institution
       N.J. Bachman    (JPL)
       W.M. Owen       (JPL)
#### Version
       -CSPICE Version 1.1.0, 07-MAR-2009 (NJB)

           This file now includes the header file f2cMang.h.
           This header supports name mangling of f2c library
           functions.

           Header sections were re-ordered.

       -CSPICE Version 1.0.0, 26-AUG-2002 (NJB) (WMO)
#### Index_Entries
       search in a character array
#### Link to routine bsrchc_c source file bsrchc_c.c

    Wed Apr  5 17:54:29 2017