Документ взят из кэша поисковой машины. Адрес
оригинального документа
: http://www.stsci.edu/~sontag/spicedocs/cspice/lx4sgn_c.html
Дата изменения: Sat Dec 17 06:09:17 2005 Дата индексирования: Mon Apr 11 00:05:07 2016 Кодировка: Поисковые слова: п п п п п п п п п п |
Scan a string from a specified starting position for the end of a signed integer.
None.
VARIABLE I/O DESCRIPTION -------- --- -------------------------------------------------- string I Any character string. first I First character to scan from in string. last O Last character that is part of a signed integer. nchar O Number of characters in the signed integer.
string is any character string. first is the location in the string to beginning scanning for a signed integer. It is assumed that the signed integer begins at first. The normal range of first is 0 : strlen(string)-1.
last is the last character at or after first such that the substring ranging from string[first] through string[last] is a signed integer. If there is no such substring, last will be returned with the value first-1. If a signed integer is found, last will be in the range is 0 : strlen(string)-1. nchar is the number of characters in the signed integer that begins at index first and ends at last. If there is no such string nchar will be given the value 0.
None.
This routine allows you to scan forward in a string to locate a signed integer that begins on the input character at index first. Note that all unsigned integers are included in the list of signed integers. The signed integers may in addition have a leading plus ('+') or minus ('-') sign.
1) Suppose you believe that a string has the form X%Y%Z where X, Y, and Z are signed integers of some unknown length and % stands for any character that cannot occur in a signed integer. You could use this routine to locate the signed integers in the string as shown below. We'll keep track of the beginning and ending of the signed integers in the integer arrays b and e. #include <string.h> #include "SpiceUsr.h" . . . first = 0; i = 0; len = strlen(string); while ( first < len-1 ) { lx4sgn_c ( string, first, &last, &nchar ); if ( nchar > 0 ) { i++; b[i] = first; e[i] = last; first = last + 2; } else { first++; } }
None.
1) If first is beyond either end of the string, then last will be returned with the value first-1 and nchar will be returned with the value 0. 2) If string[first] is not part of a signed integer then last will be returned with the value first-1 and nchar will be returned with the value 0. 3) If the input string pointer is null, the error SPICE(NULLPOINTER) will be signaled. 4) If the input string has length zero, last will be set to first-1 and nchar will be set to zero. This case is not considered an error.
None.
N.J. Bachman (JPL) W.L. Taber (JPL)
None.
-CSPICE Version 1.0.0, 18-AUG-2002 (NJB) (WLT)
Scan a string for a signed integer.