home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c222 / 1.ddi / SOURCE / CLIB / ST_CONV.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-16  |  2.1 KB  |  120 lines

  1. /*********************
  2.  *
  3.  *  st_conv.c - string conversion functions.
  4.  *
  5.  *  Purpose: This file contains some commonly used conversion routines
  6.  *           for ascii strings.
  7.  *
  8.  *  Blackstar C Function Library
  9.  *  (c) Copyright 1985,1989 Sterling Castle Software
  10.  *
  11.  *******/
  12.  
  13. #include <ctype.h>
  14. #include "blackstr.h"
  15.  
  16.  
  17. /********
  18.  *
  19.  *   st_toi(str) - string to integer conversion
  20.  *
  21.  **/
  22.  
  23. int st_toi(char *str)
  24. {
  25.     int n,sign;
  26.  
  27.     n = 0;
  28.     while(isspace(*str))        /* skip leading whitespace */
  29.     ++str;
  30.     sign = 1;
  31.     if(*str == '+' || *str== '-')
  32.     sign = (*str++=='+') ? 1 : -1;  /* multiplier for sign */
  33.     for( ; *str >= '0' && *str<='9'; ++str)
  34.     n = 10 * n + *str - '0';
  35.     return(n*sign);
  36. }
  37.  
  38.  
  39. /********
  40.  *
  41.  *   st_tol(str) - string to long conversion
  42.  *
  43.  **/
  44. long st_tol(char *str)
  45. {
  46.     int sign;
  47.     long n;
  48.  
  49.     n = 0L;
  50.     while(isspace(*str))            /* skip leading whitespace */
  51.     ++str;
  52.     sign = 1;
  53.     if(*str == '+' || *str== '-')
  54.     sign = (*str++=='+') ? 1 : -1;  /* multiplier for sign */
  55.     for( ; *str >= '0' && *str<='9'; ++str)
  56.     n = 10L * n + *str - '0';
  57.     return(n*(long)sign);
  58. }
  59.  
  60.  
  61. /********
  62.  *
  63.  *   st_tof(str) - string to float conversion
  64.  *
  65.  **/
  66.  
  67. float st_tof(char *str)
  68. {
  69.     int sign;
  70.     float n;
  71.  
  72.     n = 0L;
  73.     while(isspace(*str))            /* skip leading whitespace */
  74.     ++str;
  75.     sign = 1;
  76.     if(*str == '+' || *str== '-')
  77.     sign = (*str++=='+') ? 1 : -1;  /* multiplier for sign */
  78.     for( ; *str >= '0' && *str<='9'; ++str)
  79.     n = 10L * n + *str - '0';
  80.     return((float)(n*sign));
  81. }
  82.  
  83.  
  84. /********
  85.  *
  86.  *   st_upper(str) - convert string to upper case
  87.  *
  88.  **/
  89.  
  90. char *st_upper(char *str)              /* string to convert */
  91. {
  92.     char *ptr;
  93.  
  94.     ptr = str;
  95.     while(*str) {
  96.     if(*str >= 'a' && *str <= 'z') *str = toupper(*str);
  97.     ++str;
  98.     }
  99.     return(ptr);
  100. }
  101.  
  102.  
  103. /********
  104.  *
  105.  *   st_lower(str) - convert string to lower case
  106.  *
  107.  **/
  108.  
  109. char *st_lower(char *str)              /* string to convert */
  110. {
  111.     char *ptr;
  112.  
  113.     ptr = str;
  114.     while(*str) {
  115.     *str = tolower(*str);
  116.     ++str;
  117.     }
  118.     return(ptr);
  119. }
  120.