[RESOLVIDO]Dúvida em C

Olá estou fazendo um programa em C que faz cadastro de alunos, primeiro eu armazeno em .txt o Ra e o Nome do aluno, depois eu faço a busca pelo Ra.
O problema é que quando comparo o Ra digitado com o Ra do arquivo, eles são iguais mas o strcmp() volta != de 0.

Obs: Rodei com o Debug e vi que as duas variaveis são iguais!

TRECHO QUE FAZ A BUSCA NO ARQUIVO E COMPARA.

void buscar()
{
    FILE *arq_leu;
    char linha[40], ra[5], nome[33];
    char salva_nome[33], salva_ra[5];
    int i, j;
    int achou;
    
    arq_leu = fopen("lista.txt", "r");
    
    if(!arq_leu){
        printf("Impossivel ler arquivo");
        exit(1);
    }
    
    printf("\nDigite o RA que quer buscar: ");
    gets(ra);
    
    //Faz a varredura no arquivo
    while(!feof(arq_leu)){
        
        achou = 0;
        
        fgets(linha, 40, arq_leu);
        for(i = 0; i < strlen(linha)-1; i++){

            if((linha[i] != '|') && (i <= 4)){
                salva_ra[i] = linha[i];
                
                if(strcmp(ra, salva_ra)==0){   //Não entra nesse if
                    achou = 1;
                    j = 0;
                    continue;
                }                    
            }
            
            if(achou == 1){
                salva_nome[j] = linha[i];
            }           
        }      
        
        //Mostra o RA
        if(achou == 1){    
            printf(PULA);
            printf("Ra:%s ", salva_ra);
            printf("Nome:%s ", salva_nome);
        }       
        
        //Limpa a variavel para proxima verificação
        for(i = 0; i < strlen(salva_ra); i++){
            salva_ra[i] = '\0';
        }        
    }
        
    fclose(arq_leu);        
    return;
}

Você, como bom aluno de C, deve saber que você deve terminar uma string com ‘\0’ antes de compará-la com outra string. OK?

Do jeito que você fez, só vai funcionar de vez em quando (ou seja, está errado).

Verdade.
Havia me esquecido.
Agora funfo…
Valeu!