Search code examples
arrayscstringstructure

assign a string to a structure variable in c


#include<stdio.h>
#include<stdlib.h>
typedef struct t_name
{
     char last_name[25];
     char first_name[15];
     char middle_init[2];
} NAME;
NAME my_name, your_name;
int main()
{
    char temp[] = "sumit";
    printf("Program started\n");
    my_name.first_name=temp;
    your_name = my_name;
    NAME abc=my_name;
    printf("my_name=%s\n",my_name.first_name);
    printf("your_name=%s\n",your_name.first_name);
    printf("abc=%s\n",abc.first_name);
}

But error occurs in following statement my_name.first_name=temp;


Solution

  • error: incompatible types when assigning to type ‘char[15]’ from type ‘char *’

    define variable char *first_name
    

    instead of

    char first_name[15];
    

    Try this

    typedef struct t_name{
    
    char *first_name;
    char *middle_init;
    char *last_name;
    }NAME;
    NAME my_name,your_name;
    
    int main()
    {
    char temp[] = "sumit";
    printf("Program started\n");
    my_name.first_name=temp; // now you can assign value
    your_name = my_name;
    NAME abc=my_name;
    printf("my_name=%s\n",my_name.first_name);
    printf("your_name=%s\n",your_name.first_name);
    printf("abc=%s\n",abc.first_name);
    }