Index Page cmprss_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

       void cmprss_c ( SpiceChar          delim,
                       SpiceInt           n,
                       ConstSpiceChar   * input,
                       SpiceInt           lenout,
                       SpiceChar        * output  )

#### Abstract

        Compress a character string by removing occurrences of
        more than N consecutive occurrences of a specified
        character.

#### Required_Reading

       None.

#### Keywords

        ASCII,  CHARACTER,  STRING

#### Brief_I/O

        VARIABLE  I/O  DESCRIPTION
        --------  ---  --------------------------------------------------
        delim      I   Delimiter to be compressed.
        n          I   Maximum consecutive occurrences of delim.
        input      I   Input string.
        lenout     I   Available space in output string.
        output     O   Compressed string.

#### Detailed_Input

        delim       is the delimiter to be compressed out of the string.
                    This may be any ASCII character.

        n           is the maximum number of consecutive occurrences
                    of delim that will be allowed to remain in the
                    output string.

        input       is the input string.

        lenout      is the available space in the output string, counting
                    the terminating null.  lenout is typically the
                    declared length of the output string.

#### Detailed_Output

        output      is the output string. This is the input string with all
                    occurrences of more than N consecutive delimiters
                    removed.  A null terminator will follow the last
                    character of the string resulting from the compression.

                    If output is not large enough to hold the compressed
                    string, it is truncated on the right.  The output string
                    will always be null-terminated.

                    output may overwrite input.

#### Parameters

       None.

#### Exceptions

        1) If either input or output is a null pointer, the error
           SPICE(NULLPOINTER) will be signaled.

        2) If lenout is less than 1, the error SPICE(STRINGTOOSHORT) will
           be signaled.

        3) If the output string is too short to contain the result of
           compressing the input string, the result is truncated on the
           right.  The output string is still null-terminated.

#### Files

        None.

#### Particulars

        Occurrences of more than n consecutive delimiters are removed
        from the input string as it is copied to the output string.
        If the output string is not large enough to hold the compressed
        string, it is truncated on the right.

#### Examples

        Let DELIM = ".", and N = 2. Then

           "ABC...DE.F...",           becomes   "ABC..DE.F.."
           " ..........."                       " .."
           ".. ..AB....CD"                      ".. ..AB..CD"

        Let DELIM = " ", and N = 0. Then

           " DISK:[USER.  SUB  ]"     becomes   "DISK:[USER.SUB]"

#### Restrictions

        None.

#### Literature_References

        None.

#### Author_and_Institution

       W.L. Taber      (JPL)
       I.M. Underwood  (JPL)
       N.J. Bachman    (JPL)

#### Version

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

#### Index_Entries

       compress a character_string

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

    Wed Apr  5 17:54:30 2017