*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

