Struct com funcões

Bom dia galera!
Estou tentando implantar funções com struct mas ao inserir valores para a struct ao consultar ele não registra os valores. Acredito que esteja populando incorretamente na função.
Segue abaixo o codigo criado até então.
Caso alguém poder me ajudar, agradeço de coração. Obrigado.

#include <stdio.h>
#include <stdlib.h>
#include<string.h>

struct cafeteira {
int codigo;
float quantidade; //qtd pó de café
int luzLigada; //1 ou 0 1- ligada
int luzSemCafe;
int luzFazendoCafe;
char mensagem[21];
};
typedef struct cafeteira TipoCafeteira;
TipoCafeteira criar1(TipoCafeteira cafet1);
TipoCafeteira criar2(TipoCafeteira cafet2);
TipoCafeteira ligar1(TipoCafeteira cafet1);
TipoCafeteira ligar2(TipoCafeteira cafet2);
void menucafeteira1(TipoCafeteira cafet1);
void menucafeteira2(TipoCafeteira cafet2);
//typedef struct cafeteria TipoCafeteira;

int main(){
int ncaf=0, opcao;
TipoCafeteira cafet1;
TipoCafeteira cafet2;
cafet1=criar1 (cafet1);
cafet2=criar2 (cafet2);
do {
printf(“Digite qual cafeteira deseja utilizar: “);
scanf(”%d”, &ncaf);
if (ncaf<1||ncaf>2)
printf(“Cafeteira invalida…\n”);
}
while (ncaf<1||ncaf>2);
switch (ncaf){
case 1:
opcao = menu(ncaf);
//printf("%d", opcao);
if (opcao==1){
cafet1=ligar1 (cafet1);
}
break;
case 2:
printf(“Cafeteira 2”);
break;
/case 3:
printf(“Cafeteira 3”);
break;
/
}
}

int menu(int ncaf) {
int opcao=0;
//system(“cls”);
printf("\nCAFETEIRA %d - SELECIONE UMA OPCAO\n\n", ncaf);
printf(“1 - Ligar\n”);
printf(“2 - Desligar\n”);
printf(“3 - Verificar Repositorio\n”);
printf(“4 - Imprimir mensagem cafeteira\n”);
printf(“5 - Repor cafe\n”);
printf(“6 - Fazer cafe\n”);
printf(“7 - Sair\n\n”);
printf(“Digite sua opcao: “);
scanf(”%d”, &opcao);
return opcao;
}
void menucafeteira1(TipoCafeteira cafet1){
printf("\nDADOS DA CAFETEIRA 1 \n");
printf(“Codigo: %d\n”, cafet1.codigo);
printf(“Quantidade de cafe: %.2f\n”, cafet1.quantidade);
printf(“Luz ligada: %d\n”, cafet1.luzLigada);
printf(“Luz sem cafe: %d\n”, cafet1.luzSemCafe);
printf(“Luz fazendo cafe: %d\n”, cafet1.luzFazendoCafe);
printf(“Mensagem: %d\n”, cafet1.mensagem);
}
void menucafeteira2(TipoCafeteira cafet2){
printf("\nDADOS DA CAFETEIRA 2 \n");
printf(“Codigo: %d\n”, cafet2.codigo);
printf(“Quantidade de cafe: %.2f\n”, cafet2.quantidade);
printf(“Luz ligada: %d\n”, cafet2.luzLigada);
printf(“Luz sem cafe: %d\n”, cafet2.luzSemCafe);
printf(“Luz fazendo cafe: %d\n”, cafet2.luzFazendoCafe);
printf(“Mensagem: %d\n”, cafet2.mensagem);
}
TipoCafeteira criar1(TipoCafeteira cafet1){
//srand(time(NULL));
cafet1.codigo = rand()%1000;
//strcpy(cafet1.codigo, “123”);
cafet1.quantidade = 0;
cafet1.luzLigada = 0;
cafet1.luzSemCafe = 0;
cafet1.luzFazendoCafe = 0;
strcpy(cafet1.mensagem, “”);
menucafeteira1(cafet1);

}
TipoCafeteira criar2(TipoCafeteira cafet2){
//srand(time(NULL));
cafet2.codigo = rand()%1000;
cafet2.quantidade = 0;
cafet2.luzLigada = 0;
cafet2.luzSemCafe = 0;
cafet2.luzFazendoCafe = 0;
strcpy(cafet2.mensagem, “”);
menucafeteira2(cafet2);
}
TipoCafeteira ligar1(TipoCafeteira cafet1){
//cafet1.codigo = rand()%1000;
cafet1.quantidade = 0;
cafet1.luzLigada = 1;
cafet1.luzSemCafe = 0;
cafet1.luzFazendoCafe = 0;
strcpy(cafet1.mensagem, “LIGADA”);
//cafet1.mensagem[21] = “Ligada”;
menucafeteira1(cafet1);
}