/*========================================================================= * * GENSTRIN.H - 29 March 1999, Dave Humphrey (uesp@m0use.net) * *=======================================================================*/ #ifndef __GENSTRING_H #define __GENSTRING_H /* Required includes */ #include #include /*========================================================================= * * Begin Defines * *=======================================================================*/ /* Program Identification */ #define GENSTRING_NAME "GENSTRIN.CPP" #define GENSTRING_VERSION "0.5" #define GENSTRING_AUTHOR "Dave Humphrey (uesp@m0use.net)" #define GENSTRING_DATE "29 March 1999" /* Return value used by a number of character searching functions */ #define CHARACTER_NOT_FOUND (-1) /* Return values for the GetString() function */ #define GETSTRING_ERROR (-1) #define GETSTRING_ESC (-2) /* Shortcuts for whitespace trimming functions */ #define trim(string) lstrip(rstrip(string)) #define ltrim(string) lstrip(string) #define rtrim(string) rstrip(string) /*========================================================================= * End of Defines *=======================================================================*/ /*========================================================================= * * Begin Forward Function/Procedure Declarations * *=======================================================================*/ /* Shortcut for returning a string from a boolean value */ char *BooleanToString (const boolean b); /* Adds a Character to Middle of String */ boolean chradd (char *pString, const size_t CharIndex, const char NewChar); /* Adds one character to end of string...doesn't check for length * of string to be < MAX_STRING_LENGTH */ boolean chrcat(char *pString, const char NewChar); /* Deletes a Character from Middle of String */ boolean chrdel (char *pString, const size_t CharIndex); /* Deletes the last Character from end of String */ boolean chrdellast (char *pString); /* Attempts to Find the First Punctuation Character from End */ int chr_rpunc (const char *pString); /* Like strtok() except for character tokens */ char* chrtok (char* pString, const char Token); /* Counts occurences of sub string in string */ int CountSubStrings (const char* pString, const char* SubString); /* Replacement for gets(), inputs a string from keyboard */ int GetString (char* pInputBuffer, const size_t MaxStringLength); /* Strips Space and TAB characters from Left of String Returns * Pointer to 1st non-space/tab character in string */ char *lstrip (char *pString); /* Finds the length of the string up to end or first CR */ size_t m_strlen (const char *pString); /* Creates a comma delimited decimal number. Buffer must be allocated */ char *PrintNumber (const unsigned long Number, char *pString); /* Takes a variable number of arguments and returns a printf string */ char *PrintString (const char *pString, va_list ArgumentList); /* Strips Space and TAB characters from Right of String Returns * Pointer to string */ char *rstrip (char *pString); /* Parse out a 'variable = value' pair from a string */ boolean SeperateVarValue (char* pString, const char CommentChar, const char SeperatorChar, char** pVariable, char** pValue); /* Converts a string to a TRUE/FALSE boolean value */ boolean StringToBoolean (const char *pString); /* Smart string comparison */ boolean StringChanged (const char* pString1, const char* pString2, const boolean CaseSensitive = FALSE); inline boolean MatchString (const char* pString1, const char* pString2, const boolean CaseSensitive = FALSE) { return (boolean) !StringChanged(pString1, pString2, CaseSensitive); } /* Returns TRUE if the given stirng is composed solely of digits */ boolean StringDigit (const char* pString); /* Searches for a substring in a string (case insensitive) */ char *stristr (char *pString, const char *pSearchString); /* User Defined string compare with case insensitivity */ int strlicmp (const char *pString1, const char *pString2); /* Copies up to n characters to dest and null-terminates */ char *strnncpy (char *pDestString, const char *pSourceString, size_t MaxStringLength); /* Converts a String to Proper Case (First letter in each word upper case */ char *strproper (char *pString); /* Searches for substrings in a binary string. */ long strstr_b (const char *pString, const char *pSearchString, const size_t StringLength, const size_t SearchLength, const size_t StartIndex = 0); long strstr_bi (const char *pString, const char *pSearchString, const size_t StringLength, const size_t SearchLength, const size_t StartIndex = 0); /* Returns TRUE if the string is composed of valid decimal letters */ boolean str_isnum (const char *pString); /* Finds the Number of Lines in a String */ size_t w_strhgt (const char *pString); /* Finds the Longest String Seperated by CR */ size_t w_strlen (const char *pString); /* Define some routines for unix/ANSI */ #if (defined(__STDC__) || !defined(__TURBOC__)) && !defined(_WIN32) /* Case conversions */ char *strlwr (char *pString); char *strupr (char *pString); /* User Defined string compare with case insensitivity */ int strnicmp(const char *pString1, const char *pString1, size_t MaxStringLength); #endif /*========================================================================= * End of Forward Function/Procedure Declarations *=======================================================================*/ #endif /*========================================================================= * End of File GENSTRIN.H *=======================================================================*/