fireburn Posted May 9, 2012 at 11:25 AM Report #454040 Posted May 9, 2012 at 11:25 AM Boas estou a iniciar em C e tenho alguns conhecimentos em java mas também muito poucos. tenho que criar um programa que peça para a abrir um ficheiro com uma determinada extensão senão dar erro e depois carregar todas as linhas desse ficheiro para um array ou vector(algo que tenho de decidir qual o melhor). A minha questão e de como é que faço para ele verificar a extensão do ficheiro que vamos indicar ?
pmg Posted May 9, 2012 at 12:11 PM Report #454047 Posted May 9, 2012 at 12:11 PM (edited) Podes calcular a posição do último ponto numa string com a função strrchr(). Depois de saberes essa posição (se existir) podes aceder aos últimos caracteres da string (que devem corresponder à extensão). Por exemplo: /* NAO TESTADO */ char filename[] = "um.dois.tres.txt"; char *ultimoponto; ultimoponto = strrchr(filename, '.'); if (ultimoponto == NULL) /* erro: ficheiro sem extensão */; /* distracao removida thanks to bsccara */ if (strcmp(ultimoponto + 1, "doc") == 0) printf("Microsoft\n"); else if (strcmp(ultimoponto + 1, "pdf") == 0) printf("Adobe\n"); else if (strcmp(ultimoponto + 1, "odf") == 0) printf("OpenOffice\n"); else printf("Desconhecido\n"); Edited May 14, 2012 at 09:45 AM by pmg GeSHi update What have you tried? Não respondo a dúvidas por PM A minha bola de cristal está para compor; deve ficar pronta para a semana. Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!
bsccara Posted May 9, 2012 at 02:59 PM Report #454087 Posted May 9, 2012 at 02:59 PM Pequena correcção a uma distração: if (strcmp(ultimoponto, ".doc") == 0) printf("Microsoft\n"); ou if (strcmp(ultimoponto + 1, "doc") == 0) printf("Microsoft\n");
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now