struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN long AtoL(s) register char *s; { register long val=0; register int sign =1; register char c=*s; if(c==' ') { do ; while(*++s==' '); } c=*s; if((c=='+')||(c=='-')) { if(c=='+') sign = 1; if(c=='-') sign = -1; s++; } c=*s; if(c>='0' && c<= '9') { do { val=10*val+c-'0'; c=*++s; } while(c>='0' && c <= '9'); } if(sign<0) val=-val; return (val); } /* $VER: AtoL 0.2 MRZ06 */ #endif long t(s) char *s; { long el=0,l; char os[64]; l=AtoL(s); sprintf(os,"<%s>",s); printf(" %22s = %ld\n",os,l); return el; } int main() { /* MAIN */ register long l,al; char *s[32]; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); t(" 23"); t("a 23"); t(" b23"); t(" -1"); t(" +2"); t(" -+456"); t(" +-456"); t(" 1234567890atol"); t(" -255"); t("AtoL12345"); t("987"); t("-987"); t("+987"); t(""); if(StringsBase) CloseLibrary(StringsBase); return 0; } /* END */ #ifdef COMMENT < 23> = 23 = 0 < b23> = 0 < -1> = -1 < +2> = 2 < -+456> = 0 < +-456> = 0 < 1234567890atol> = 1234567890 < -255> = -255 = 0 <987> = 987 <-987> = -987 <+987> = 987 <> = 0 #endif