It's because the function is a pointer, ever tried to use capatilize twice
in a function call like that? Does the exact same thing, and I forget how
you fix it, only know why it does that.


----- Original Message ----- 
From: "Hiddukel" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, February 11, 2004 9:21 PM
Subject: Format Number function


> I have a function that I got from a snippet that I need a little help
with.
> It seems to work fine the first time it is called but not the second time.
> Here is the code I was using to test it with:
>
> printf_to_ch(ch, "Your current balance is: %s Steel and %s Gold.\n\r",
> fnum(1000), fnum(2000));
>
> What this outputs is:
>
> Your current balance is: 1,000 Steel and 1,000 Gold.
>
> When it should be:
>
> Your current balance is: 1,000 Steel and 2,000 Gold.
>
> Here is the fnum function in question:
>
> char *fnum(long number)
> {
>      int index,index_new,rest;
>      char buf[16];
>      static char buf_new[16];
>
>      sprintf(buf, "%ld", number);
>      rest = strlen(buf)%3;
>
>      for (index = index_new = 0;index < strlen(buf); index++, index_new++)
>      {
>           if (index != 0 && (index - rest) %3 == 0 )
>           {
>                buf_new[index_new]=',';
>                index_new++;
>                buf_new[index_new] = buf[index];
>           }
>           else
>                buf_new[index_new] = buf[index];
>      }
>      buf_new[index_new] = '\0';
>      return buf_new;
> }
>
> Any help on this would be very much appreciated.
>
>
>
>
> -- 
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom


Reply via email to