Q:

Inserting a word(char[]) into a structure word(char[]) in C

So i'm reading each word from a textfile which contains many words that are not unique. I'm supposed find the number of unique words and store those words into a structure variable called word
My main problem is labeled under the comment "MY PROBLEM IS HERE BELOW"
Struct Code:
  typedef struct {
  char word[101];
  int  freq;

  } WordArray;

Code:  
  //temp[i].word is a temporary structure that scans ALL words
  //input[i].word is the structure with unique words

  word = fscanf(finput, "%s", &temp[i].word);

 //if the word in temp[i] is in input[j].word then it is not unique
 // so frequency of word is incremented

   for(j = 0; j < 200; j++) { 
     if(strcmp(temp[i].word,input[j].word) == 0){
        contains = 1;
        input[j].freq++;
     }
  }

     // MY PROBLEM IS HERE BELOW
    if(contains != 1) { // since contains is not 1 then it is unique

     input[i].word = temp[i].word // i want to put this word in input[i].word but this
                                  // produces incompatible type error
                                  // i tried strcpy and strncpy no luck...
     input[i].freq++;
     uniqueWords++;
  }

A:

Remove the &
fscanf(finput, "%s", &temp[i].word);

change it to
fscanf(finput, "%s", temp[i].word);

Or take the address of the first element, which is equivalent to the previous line
fscanf(finput, "%s", &temp[i].word[0]);

the passed array decays to a pointer to the first element of the array, so these both are equivalent
fscanf(finput, "%s", temp[i].word); /* passed a pointer to the first elemn */
fscanf(finput, "%s", &temp[i].word[0]); /* passed the address of the first element */

also, add a limit to fscanf to prevent buffer overflow like this
fscanf(finput, "%100s", temp[i].word); /* passed a pointer to the first elemn */

where the number should be 1 fewer than the array size.
You can't assign to arrays this line
input[i].word = temp[i].word

is wrong, you should use strcpy
strcpy(input[i].word, temp[i].word);

