Need Help with an array problem

Please support our C advertiser: Programming Forums - DaniWeb Sister Site
Reply

Join Date: Mar 2005
Posts: 22
Reputation: Auto is an unknown quantity at this point 
Solved Threads: 0
Auto Auto is offline Offline
Newbie Poster

Need Help with an array problem

 
0
  #1
Mar 30th, 2005
I have a function in one of my programs that picks a random state from a list. It then puts this random state in a structure array. However the name selected from the list does not match the name that winds up in my array structure. The following is not snipped from my code, since I'm using multifiles, so I just retyped it all in one program so it could be copied and pasted to your compiler if you wish to try it. The results of this program are the same as mine though. Basically, I'd expect the output of the last two printf() functions to come out the same for each loop.

#include<time.h>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>  
// data list of states
char datalist[10][20]=
{
      "complete",
      "considering",
      "active",
      "disabled",
      "obsolete",
      "halted",
      "expanded",
      "rerouted",
      "initialized",
      "reworked"
};

// structures
struct data_set
{
   char status[20];
   int priority;
   int complexity;
};

int main()
{
     // declarations
     struct data_set set1[5];
     int random_number;
     
     // implementation
     srand(time(NULL));  // for random picking from data list
     for(int i=0;i<5;i++)
     {
          // get a random state from a list of 10          
          random_number=rand()%10;
          printf("Random Number:                %d\n",random_number);
          printf("Random Name picked from list: %s\n",datalist[random_number]);
          strcpy(set1[i].status,&datalist[random_number][20]);
          printf("Random Name stored in set1:   %s\n",set1[i].status);
     }
     getch();
}
Reply With Quote Quick reply to this message  
Join Date: Apr 2004
Posts: 4,442
Reputation: Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future 
Solved Threads: 250
Team Colleague
Dave Sinkula's Avatar
Dave Sinkula Dave Sinkula is offline Offline
long time no c

Re: Need Help with an array problem

 
0
  #2
Mar 30th, 2005
  1. strcpy(set1[i].status,datalist[random_number]);
not
strcpy(set1[i].status,&datalist[random_number][20]);
"One of the methods used by statists to destroy capitalism consists in establishing controls that tie a given industry hand and foot, making it unable to solve its problems, then declaring that freedom has failed and stronger controls are necessary." --Ayn Rand
Reply With Quote Quick reply to this message  
Join Date: Mar 2005
Posts: 22
Reputation: Auto is an unknown quantity at this point 
Solved Threads: 0
Auto Auto is offline Offline
Newbie Poster

Re: Need Help with an array problem

 
0
  #3
Mar 30th, 2005
Thanks, that fixed it. I was just under the impression that since it was an array of strings that I needed the address operator in the strcpy() function, and the only way I could get that to work was add the [20].
Reply With Quote Quick reply to this message  
Join Date: Apr 2004
Posts: 4,442
Reputation: Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future Dave Sinkula has a brilliant future 
Solved Threads: 250
Team Colleague
Dave Sinkula's Avatar
Dave Sinkula Dave Sinkula is offline Offline
long time no c

Re: Need Help with an array problem

 
0
  #4
Mar 30th, 2005
You can do that if you want to, but don't go off the end of the array.
strcpy(set1[i].status,&datalist[random_number][0]);
"One of the methods used by statists to destroy capitalism consists in establishing controls that tie a given industry hand and foot, making it unable to solve its problems, then declaring that freedom has failed and stronger controls are necessary." --Ayn Rand
Reply With Quote Quick reply to this message  
Join Date: Mar 2005
Posts: 22
Reputation: Auto is an unknown quantity at this point 
Solved Threads: 0
Auto Auto is offline Offline
Newbie Poster

Re: Need Help with an array problem

 
0
  #5
Mar 30th, 2005
Now I think I get it, I was basically offsetting the location I was pointing to by 20. Here I was assuming I needed to put the length of each string in the brackets, because I think empty brackets caused an error. I Figured it needed to know how big of a string it was copying.

Thanks again Dave.
Reply With Quote Quick reply to this message  
Reply

This thread is more than three months old.
Perhaps start a new thread instead?
Message:


Thread Tools Search this Thread



Tag cloud for C
About Us | Contact Us | Advertise | DaniWeb | Acceptable Use Policy | RSS Feed

©2003 - 2009 DaniWeb® LLC