Olá a todos, estou precisando de ajuda na função excluir deste programinha de agenda que estou usando para estudo. Ele esta dando erro na compilação e não sei o que pode ser, caso alguem posso sugerir um outro metodo para que possa ser feita a exlusão eu agradeço. Segue abaixo fonte:

Código :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct pessoa
{
  char nome[15];
  char telefone[10];
};
typedef struct pessoa Pessoa;
void registra(char nome[15], int telefone[10]) 
{
  FILE *fd;
 
  fd=fopen("nomesagenda","a");
  fprintf(fd, "%s\n", nome);
  fprintf(fd, "%s\n", telefone);
  printf("Dados registrados\n\n");
  fclose(fd);
  getchar();
}
void listalimp() 
{
  FILE *fd;
 
  fd=fopen("nomesagenda","w+");
  printf("Lista limpa\n\n");
  fclose(fd);
  getchar();
}
void pesquisa(char pesq[])
{
   FILE *fd;
   char curs[15];
   char telefone[10];
   int existe=0;
 
   fd=fopen("nomesagenda","r");
   while ((fscanf(fd,"%s", curs))!=EOF)
      if (!strcmp(curs, pesq)) 
      {
         printf("\n\tNome: %s", curs);
         fscanf(fd,"\n%s", &telefone);
         printf("\n\tTelefone: %s\n", telefone);
         fscanf(fd,"\n");
         existe=1;
      }
      else fscanf(fd,"\n\n");
          if (existe==0) printf("Cadastro inexistente!\n");
          getchar();
   fclose(fd);
}
 
// essa funcao que nao funciona
void excluir(char exc[])
{
   FILE *fd;
   char curs[15];
   char telefone[10];
   int existe=0;
 
   fd=fopen("nomesagenda","a");
   while ((fscanf(fd,"%s", curs))!=EOF)
      if (!strcmp(curs, exc)) 
      {
         strcpy(curs,"");
         strcpy(telefone,"");
         printf("Registro excluido\n\n");
         getchar();
         existe=1;
      }
      else fscanf(fd,"\n\n");
          if (existe==0) printf("Cadastro inexistente!\n");
          getchar();
   fclose(fd);
}
void listar() 
{
  FILE *fd;
  char curs[15];
  char telefone[10];
  int i=0;
 
  fd=fopen("nomesagenda","r");
 
  while ((fscanf(fd,"%s", curs))!=EOF) 
  {
    printf("\n\tNome: %s",curs);
    fscanf(fd,"\n%s", &telefone);
    printf("\n\tTelefone: %s\n", telefone);
    fscanf(fd,"\n");
    i++;
  }
  printf("\n\tTotal de registros: %d",i);
}
 
int main(void) 
{
  FILE *fd;
  int menu,tamnome;
  Pessoa pe;
 
  while (menu!=0) 
  {
    system("cls");
    printf("Agenda de telefones\n\n");
    printf("(1) Registrar nome\n");
    printf("(2) Procurar nome\n");
    printf("(3) Listar nomes\n");
    printf("(4) Limpar lista\n");
    printf("(5) Excluir registro\n");
    printf("(0) Sair\n\n");
    printf("Escolha uma opcao: ");
    scanf("%d",&menu);
    getchar();
 
    switch (menu) 
    {
      case 1:
        printf("\n\tEntre com o Nome: ");
        scanf("%s",&pe.nome);
        getchar();
        tamnome=strlen(pe.nome);
        if (tamnome>15) 
        {
         printf("O tamanho do nome passa de 15 letras.\n");
         getchar(); getchar();
     }
     else 
        {
         printf("\n\tEntre com o Telefone: ");
         scanf("%s",&pe.telefone);
         getchar();
         registra(pe.nome, pe.telefone);
     }
      break;
 
      case 2: 
        printf("\n\tEntre com o Nome: ");
     scanf("%s",&pe.nome);
     getchar();
     tamnome=strlen(pe.nome);
     if (tamnome>15) 
        {
         printf("O tamanho do nome passa de 15 letras.\n");
         getchar(); getchar();
     }
     else 
        {
            pesquisa(pe.nome);
     }
      break;
 
      case 3:
     listar();
     getchar();
      break;
 
      case 4:
        listalimp();
     getchar();
      break;
 
      case 5:
        system("cls");
        printf("Exclusao\n\n");
        printf("Entre com o Nome: ");
     scanf("%s",&pe.nome);
     getchar();
        exluir(pe.nome);
     getchar();
      break;
 
      case 0: 
        system("cls");
        printf("Finalizando\n\n");
        system("pause");   
      break;
 
      default:
        system("cls");
        printf("Opcao invalida\n\n");
     system("pause");
      break;
    }
  }
  return 0;
}