Index of Functions: A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 
Index Page
ncpos

Table of contents
Procedure
Abstract
Required_Reading
Keywords
Declarations
Brief_I/O
Detailed_Input
Detailed_Output
Parameters
Exceptions
Files
Particulars
Examples
Restrictions
Literature_References
Author_and_Institution
Version

Procedure

     NCPOS ( NOT character position )

     INTEGER FUNCTION NCPOS ( STR, CHARS, START )

Abstract

     Find the first occurrence in a string of a character NOT belonging
     to a collection of characters, starting at a specified location,
     searching forwards.

Required_Reading

     SCANNING

Keywords

     CHARACTER
     SEARCH
     UTILITY

Declarations

     IMPLICIT NONE

     CHARACTER*(*)         STR
     CHARACTER*(*)         CHARS
     INTEGER               START

Brief_I/O

     VARIABLE  I/O  DESCRIPTION
     --------  ---  --------------------------------------------------
     STR        I   Any character string.
     CHARS      I   A collection of characters.
     START      I   Position to begin looking for one not in CHARS

     The function returns the index of the first character of STR
     at or following index START that is not in the collection CHARS.

Detailed_Input

     STR      is any character string.

     CHARS    is a character string containing a collection of
              characters. Spaces in CHARS are significant.

     START    is the position in STR to begin looking for
              characters not in CHARS.

Detailed_Output

     The function returns the index of the first character of STR (at
     or following index START) that is not one of the characters in the
     string CHARS. If no such character is found, the function returns
     zero.

Parameters

     None.

Exceptions

     Error free.

     1)  If START is less than 1, the search begins at the first
         character of the string.

     2)  If START is greater than the length of the string, NCPOS
         returns zero.

Files

     None.

Particulars

     NCPOS is case sensitive.

     An entire family of related SPICELIB routines (POS, CPOS, NCPOS,
     POSR, CPOSR, NCPOSR) is described in the Required Reading.

     Those familiar with the True BASIC language should note that
     these functions are equivalent to the True BASIC intrinsic
     functions with the same names.

Examples

     Let STRING = 'BOB, JOHN, TED, AND MARTIN    '
                   123456789012345678901234567890

     Let CHAR   = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'

     Normal (Sequential) Searching:
     ------------------------------

           NCPOS( STRING, CHAR,  1 ) = 4
           NCPOS( STRING, CHAR,  5 ) = 5
           NCPOS( STRING, CHAR,  6 ) = 10
           NCPOS( STRING, CHAR, 11 ) = 11
           NCPOS( STRING, CHAR, 12 ) = 15
           NCPOS( STRING, CHAR, 16 ) = 16
           NCPOS( STRING, CHAR, 17 ) = 20
           NCPOS( STRING, CHAR, 21 ) = 27
           NCPOS( STRING, CHAR, 28 ) = 28
           NCPOS( STRING, CHAR, 29 ) = 29
           NCPOS( STRING, CHAR, 30 ) = 30
           NCPOS( STRING, CHAR, 31 ) =  0

     START out of bounds:
     --------------------

           NCPOS( STRING, CHAR, -12 ) = 4
           NCPOS( STRING, CHAR,   0 ) = 4
           NCPOS( STRING, CHAR,  31 ) = 0
           NCPOS( STRING, CHAR, 123 ) = 0

     Order within CHARS:
     -------------------

           NCPOS( STRING, 'JOHN', 7 ) = 10
           NCPOS( STRING, 'OHJN', 7 ) = 10

Restrictions

     None.

Literature_References

     None.

Author_and_Institution

     J. Diaz del Rio    (ODC Space)
     H.A. Neilan        (JPL)
     B.V. Semenov       (JPL)
     W.L. Taber         (JPL)

Version

    SPICELIB Version 1.1.0, 04-JUL-2021 (JDR)

        Edited the header to comply with NAIF standard.

    SPICELIB Version 1.0.3, 31-JAN-2008 (BVS)

        Removed non-standard end-of-declarations marker
        'C%&END_DECLARATIONS' from comments.

    SPICELIB Version 1.0.2, 10-MAR-1992 (WLT)

        Comment section for permuted index source lines was added
        following the header.

    SPICELIB Version 1.0.1, 26-MAR-1991 (HAN)

        The Required Reading file POSITION was renamed to SCANNING.
        This header was updated to reflect the change.

    SPICELIB Version 1.0.0, 31-JAN-1990 (WLT)
Fri Dec 31 18:36:35 2021