Thread: String array's? How can you???

  1. #1
    Registered User
    Join Date
    Mar 2003

    Question String array's? How can you???

    I'm working on a database program and I'm using array's to store the names entered into the program but seeing that Strings are already char arrays, it's become quite difficult. I'm having problems using 2 dimensional arrays to do this. Can anyone help? Here's the commented code, it's not too long. Thanks!

    int main() //includes and such are above; no other functions yet. :)
      int i = 0, namesEntered = 1, *nePtr; //integers to be used...
      char name[ARRAY_MAX], nameInSlot[ARRAY_MAX][i]; //array's of chars.. "strings"
      nePtr = &namesEntered; //namesEntered ("ne") pointer points to the address of the variable...
      printf("How many names to enter: "); 
      scanf("%d", nePtr); //get the amount they entered.
      printf("\n\n[%d character limit]\n", (ARRAY_MAX - 1)); 
      for (i = 0; i <= (namesEntered - 1); i++)
        printf("Enter name %d: ", (i + 1));
        nameInSlot[ARRAY_MAX][i] = name[ARRAY_MAX]; //this SHOULD put the value of the string
                                    //entered into a 2d array which consists of an string and
                                    //and index to shove it into.... note the "SHOULD"
      for (i = 0; i <= namesEntered; i++) //loop for output.
          printf("%s\n", nameInSlot[ARRAY_MAX][i]); //ends up all it does is print "(null)" odd.
                                                    //or crashes the whole program. blah.
      system("pause"); //press anykey...
      return 0; //exit

  2. #2
    End Of Line Hammer's Avatar
    Join Date
    Apr 2002
    >> fflush(stdin);
    This is not a good idea

    Nor is this

    >>char nameInSlot[ARRAY_MAX][i];
    How big is i when this variable is declared? Answer: 0. Therefore, you've created an array like so:
    Also, using variables within an array declaration is allowed (unless you're using C99 standard compiler). The array sizes have to be known at compile time.

    >>nameInSlot[ARRAY_MAX][i] = name[ARRAY_MAX];
    This does not copy a string, to do that you need strcpy().

    Here's an adapted version to show you the way forward. It isn't by any means complete, but it should get your going in the right direction.
    #include <stdio.h>
    #include <stdlib.h>
    #define ARRAY_MAX 10
    #define MAX_NAME_LENGTH 50
    int main() //includes and such are above; no other functions yet.
      char nameInSlot[ARRAY_MAX][MAX_NAME_LENGTH];
      int i;
      for (i = 0; i < ARRAY_MAX; i++)
        printf ("Enter name %d: ", i+1);
        fgets(nameInSlot[i], MAX_NAME_LENGTH, stdin);
      for (i = 0; i < ARRAY_MAX; i++)
        printf("%s\n", nameInSlot[i]);
      return 0;
    When all else fails, read the instructions.
    If you're posting code, use code tags: [code] /* insert code here */ [/code]

  3. #3
    Registered User
    Join Date
    Mar 2003
    Thanks a lot, I'll be sure to make note of doing it that way! I actually figured a way how to do it with structures (arraying the structure string) after a little bit of posting this thread, which took up more space than you way. Unfortunatly I couldn't get back to the web site (Was it down??) to say I figured it out... (kept getting a DNS error).

    Anyway, why is "fflush"ing the stdin after a scanf not good? I always thought you had to fflush your input after you used a scanf? (or fscanf) and why do you fflush the stdout after your printf? I read the page you linked to but it didn't really clear it up completely for me.... I didn't really see anything they flushed the input with.. the closest I saw was the "cout.flush()". (personally, I'm not a fan of "cin" and "cout"... it takes up too much room, well atleast the cout). ????????????????????????
    Last edited by Nuke; 05-12-2003 at 04:44 PM.

  4. #4
    Registered User
    Join Date
    Mar 2003
    Ok, so I shouldn't use regular scanf if I can and just use sscanf? Thanks a lot for clearing that up, I'll look around the site for the syntax of sscanf. (that is, if it's different. )

    Thanks again!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. char Handling, probably typical newbie stuff
    By Neolyth in forum C Programming
    Replies: 16
    Last Post: 06-21-2009, 04:05 AM
  2. String Class
    By BKurosawa in forum C++ Programming
    Replies: 117
    Last Post: 08-09-2007, 01:02 AM
  3. Program using classes - keeps crashing
    By webren in forum C++ Programming
    Replies: 4
    Last Post: 09-16-2005, 03:58 PM
  4. Something is wrong with this menu...
    By DarkViper in forum Windows Programming
    Replies: 2
    Last Post: 12-14-2002, 11:06 PM
  5. string handling
    By lessrain in forum C Programming
    Replies: 3
    Last Post: 04-24-2002, 07:36 PM