*slaps forehead*  Knew it had to be easy.  Duh.

Any other ways of doing it?  Specifically, a more sophisticated way of having
multiple divisions without needing to do the whole if check/strcpy/whatnot?  I
always have in mind something like this:
clan_table[ch->clan].division[ch->clandivision].name.

To the best of my knowledge this doesn't exist, so I guess I could make a
seperate structure for divisions and access it as clan_division_table[ch->clan,
ch->clandivision].name; if that's even possible.


----- Original Message -----
From: "Jason Gauthier" <[EMAIL PROTECTED]>
To: "'Jeremy Hill'" <[EMAIL PROTECTED]>; <[email protected]>
Sent: Friday, June 14, 2002 6:10 AM
Subject: RE: Pointers, strings, and clowns (no clowns)


> >  if (ch->clandivision == 1)
> >          divbuf = clan_table[ch->clan].division_one_name; (line 1202)
> >       else
> >          divbuf = clan_table[ch->clan].division_two_name; (line 1204
>
> strcpy()!
>
>
> >-----Original Message-----
> >From: Jeremy Hill [mailto:[EMAIL PROTECTED]
> >Sent: Friday, June 14, 2002 4:11 AM
> >To: [email protected]
> >Subject: Pointers, strings, and clowns (no clowns)
> >
> >
> >Okay, here's a plea for help.
> >
> >Goal: To print the players' clan division, if applicable, out
> >using sprintf.
> >
> >struct clan_type
> >{
> >    ...
> >    char        *division_one_name;
> >    char        *division_two_name;
> >    ...
> >};
> >
> >That's how the divisions are laid out in the struct.  'ch' has a
> >clandivision field added to it--0 = not in a division, 1 =
> >division 1, 2 =
> >division 2.  Question 1: Is there a better way of
> >accomplishing this?  This
> >system isn't very flexible.  However, this isn't the
> >relatively important
> >question; that one follows:
> >
> >Here's where I'm running into problems:
> >
> >char *divbuf[MAX_STRING_LENGTH];
> >...
> >
> >    if (ch->clandivision > 0 && ch->clandivision < 3)
> >    {
> >       if (ch->clandivision == 1)
> >          divbuf = clan_table[ch->clan].division_one_name; (line 1202)
> >       else
> >          divbuf = clan_table[ch->clan].division_two_name; (line 1204)
> >    }
> >...
> >
> >act_comm.c:1202: incompatible types in assignment
> >act_comm.c:1204: incompatible types in assignment
> >
> >Originally, I had divbuf not be a pointer, but that also
> >failed.  What I'm
> >trying to do is to copy the name of the division to a buffer,
> >which will be
> >printed as part of the following sprintf:
> >                                      \/
> >   sprintf(buf, "%s [(%d) %s] %s: '%s'",
> >      clan_table[ch->clan].who_name, ch->clanrank, divbuf, ch->name,
> >argument);
> >
> >Should I just change the struct definition of *division_one_name and
> >*division_two_name to not be pointers?  I need not really even
> >need to copy
> >the name to a buffer, I suppose I could instead have three different
> >sprintfs for each situation ('clan_table[ch->clan].division_one_name,
> >two_name, or none), but that doesn't help me in figuring out
> >pointers and C
> >in the long run.
> >
> >I'm sure the optimal solution is relatively easy, but I just
> >can't see it
> >(like all newbie programmers, pointers are like a programming
> >language in
> >and of their own to me).
> >
> >I appreciate your help.
> >
> >Thanks,
> >Jeremy Hill
> >
> >
> >
> >--
> >ROM mailing list
> >[email protected]
> >http://www.rom.org/cgi-bin/mailman/listinfo/rom
> >
>
> --
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom


Reply via email to