[ILUG] nice C question...
Martin Donlon
akawaka at csn.ul.ie
Wed Apr 11 17:09:15 IST 2001
First of all, you might want to actually zero terminate your list of
numbers:)
int nums[]={ 2, 76, 1282, 28182, 1232, 0 };
char big_string[255];
big_string[0]=0;
while( *nums ){
snprintf( big_string, 254, "%s %d", big_string, *nums );
nums++;
}
is porbably a bit safer
statements like *nums++!=0 are just plain evil and unneccesary, IMHO
On Wed, Apr 11, 2001 at 04:53:19PM +0100, John P. Looney wrote:
> Given an array of integers, terminated with zero, what's the easiest way
> to make a string from it ?
>
> I thought this would do it, but it's not that neat..and it dumps core;
>
> int nums[]={2,76,1282,28182,1232};
> char big_string[255];
> char *tmp_ptr;
>
> big_string[0]=0;
> tmp_ptr=big_string;
>
> while(*nums++!=0) {
> /* start printing into the end of the previous output */
> tmp_ptr=+(sprintf(tmp_ptr, "%s.%d",tmp_ptr,name) - 1);
> }
>
> syslog(LOG_INFO, "big string is %s", big_string);
>
> Anyone care to do it better ?
>
> Kate
>
> --
> When I say 'free', I mean 'free': free from bond, of chain or command:
> to go where you will, even to Mordor, Saruman, if you desire. "
> -- Gandalf, paraphrasing the choice between Free and Non-free software
>
> --
> Irish Linux Users' Group: ilug at linux.ie
> http://www.linux.ie/mailman/listinfo/ilug for (un)subscription information.
> List maintainer: listmaster at linux.ie
--
Martin
--
Bother! said Pooh, as he read the Generations script.
More information about the ILUG
mailing list