Thread: how to assign a string into a cell of an array

  1. #1
    Registered User
    Join Date
    Apr 2002

    Question how to assign a string into a cell of an array

    I have a problem, using an aray.
    I'm trying to asign for example a string "susana" to the fist cell
    into an array(for example arrayName[20])

    char arrayName[20];
    printf("enter name:\n");
    //after that I'm trying
    and the program crashed.
    my question is, can I assign a string into a cell of array and after that to display the cell with the string inside?(for example it is posible in VB)

  2. #2
    ATH0 quzah's Avatar
    Join Date
    Oct 2001
    What do you mean "Into the cell of an array"?

    Do you want an array of strings? Otherwise, a "cell" of your array only contains a single character. If you want the "cell" to contain a whole string, you need an array of character pointers. Then you need to actually get into dynamicly allocating space and what not. Not that difficult, but it can be tricky.

    Hope is the first step on the road to disappointment.

  3. #3
    Registered User
    Join Date
    Feb 2002
    I don't know about VB, but I think your problem is you are using a character when you need a string and vice-versa.

    arrayName[0] = a single character(the first letter)

    arrayName = string(actually a pointer to the array of chars that make up the string.)

    Try this:

    char arrayName[20]; 
    printf("enter name:   "); 
    printf("\n%s", arrayname);
    I didn't have a compiler to check this, but I think it is right.

    If you really want to use scanf() instead of gets(), try:

    scanf("%s", arrayName);
    Last edited by drharv; 04-23-2002 at 09:48 PM.

  4. #4
    You can also use fgets so you do not overrun the size of the array

    char arrayName[20];
    printf( "Enter Name:" );
    fgets( name, sizeof( name ), stdin );

    Now the user can't enter any more characters than you have provided storage for. This is one alternative to scanf.

    If you want to use scanf & gets you might want to throw this in there between scanf & gets

    while( getchar( ) != '\n' );

    I hope this helps you.

  5. #5
    Code Goddess Prelude's Avatar
    Join Date
    Sep 2001
    It looks like you want a two dimensional array or an array of pointers:
    char a[2][20];
    fgets ( a[0], sizeof a[0], stdin );
    printf ( "%s", a[0] );
    char *a[2];
    if ( ( a[0] = malloc ( 20 * sizeof *a ) ) != NULL ) {
      fgets ( a[0], 20, stdin );
      printf ( "%s", a[0] );
    My best code is written with the delete key.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. RicBot
    By John_ in forum C++ Programming
    Replies: 8
    Last Post: 06-13-2006, 06:52 PM
  2. Calculator + LinkedList
    By maro009 in forum C++ Programming
    Replies: 20
    Last Post: 05-17-2005, 12:56 PM
  3. Quick question about SIGSEGV
    By Cikotic in forum C Programming
    Replies: 30
    Last Post: 07-01-2004, 07:48 PM
  4. 3-d array assign string values
    By WaterNut in forum C++ Programming
    Replies: 8
    Last Post: 07-01-2004, 12:02 AM
  5. lvp string...
    By Magma in forum C++ Programming
    Replies: 4
    Last Post: 02-27-2003, 12:03 AM