Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

assign a string to a structure variable in c [duplicate]

#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;

like image 808
sumit kumar Avatar asked Mar 20 '26 22:03

sumit kumar


2 Answers

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);
}
like image 52
Rishi Dwivedi Avatar answered Mar 23 '26 11:03

Rishi Dwivedi


The erros is (something that you should have posted):

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

You cannot copy strings like that, you need to copy character by character or use library function strcpy().

like image 41
brokenfoot Avatar answered Mar 23 '26 10:03

brokenfoot



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!