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 matchw_c

Table of contents

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

       matchw_c ( Match string against wildcard template )

       SpiceBoolean matchw_c ( ConstSpiceChar      * string,
                               ConstSpiceChar      * templ,
                               SpiceChar             wstr,
                               SpiceChar             wchr   )

#### Abstract

       Determine whether a string is matched by a template containing
       wild cards. The comparison is case-sensitive.

#### Required_Reading

       None.

#### Keywords

       CHARACTER
       COMPARE

#### Brief_I/O

       VARIABLE  I/O  DESCRIPTION
       --------  ---  --------------------------------------------------
       string     I   String to be tested.
       templ      I   Template (with wild cards) to test against string.
       wstr       I   Wild string token.
       wchr       I   Wild character token.

       The function returns the value SPICETRUE if string matches templ,
       SPICEFALSE if not.

#### Detailed_Input

       string      is the input character string to be tested for
                   a match against the input template. Leading and
                   trailing blanks are ignored.

       templ       is the input template to be tested for a match
                   against the input string. `templ' may contain wild
                   cards. Leading and trailing blanks are ignored.

       wstr        is the wild string token used in the input template.
                   The wild string token may represent from zero to
                   any number of characters.

       wchr        is the wild character token used in the input
                   template. The wild character token represents
                   exactly one character.

#### Detailed_Output

       The function returns SPICETRUE when the input string matches the
       input template, and SPICEFALSE otherwise. The string and template
       match whenever the template can expand (through replacement of its
       wild cards) to become the input string.

#### Parameters

       None.

#### Exceptions

       1)  If any of the `string' or `templ' input string pointers is
           null, the error SPICE(NULLPOINTER) is signaled. The function
           returns the value SPICEFALSE.

       2)  If any of the `string' or `templ' input strings has zero
           length, the error SPICE(EMPTYSTRING) is signaled. The function
           returns the value SPICEFALSE.

#### Files

       None.

#### Particulars

       matchw_c ignores leading and trailing blanks in both the string
       and the template. All of the following are equivalent: they
       all return SPICETRUE.

          #include "SpiceUsr.h"
                .
                .
                .
          matchw_c ( "ALCATRAZ",       "A*Z",      '*', '%' );
          matchw_c ( "  ALCATRAZ  ",   "A*Z",      '*', '%' );
          matchw_c ( "ALCATRAZ",       "  A*Z  ",  '*', '%' );
          matchw_c ( "  ALCATRAZ  ",   "  A*Z  ",  '*', '%' );

       matchw_c is case-sensitive: uppercase characters do not match
       lowercase characters, and vice versa. Wild characters match
       characters of both cases.

#### Examples

       Let
             string  = "  ABCDEFGHIJKLMNOPQRSTUVWXYZ  "
             wstr    = '*'
             wchr    = '%'

       Then
             if TEMPL is  "*A*"        matchw_c is SPICETRUE
                          "A%D*"                     SPICEFALSE
                          "A%C*"                   SPICETRUE
                          "%A*"                      SPICEFALSE
                          "%%CD*Z"                 SPICETRUE
                          "%%CD"                     SPICEFALSE
                          "A*MN*Y*Z"               SPICETRUE
                          "A*MN*Y*%Z"                SPICEFALSE
                          "*BCD*Z*"                SPICETRUE
                          "*bcd*z*"                  SPICEFALSE
                          " *BCD*Z*  "             SPICETRUE

#### Restrictions

       None.

#### Literature_References

       None.

#### Author_and_Institution

       N.J. Bachman        (JPL)
       J. Diaz del Rio     (ODC Space)
       W.L. Taber          (JPL)
       I.M. Underwood      (JPL)

#### Version

       -CSPICE Version 1.0.1, 04-AUG-2021 (NJB) (JDR)

           Edited the header to comply with NAIF standard.

           Corrected header example to show case-sensitive comparison.

       -CSPICE Version 1.0.0, 17-AUG-1999 (NJB) (WLT) (IMU)

#### Index_Entries

       match string against wildcard template
       test whether a string matches a wildcard template

#### Link to routine matchw_c source file matchw_c.c

    Fri Dec 31 18:41:09 2021