Merge pull request #10 from axell-brendow/feature/add-jogador-struct
Add Jogador struct
This commit is contained in:
commit
2ec0e2997c
|
|
@ -0,0 +1,93 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define TAM_MAX_LINHA 250
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int id;
|
||||||
|
int peso;
|
||||||
|
int altura;
|
||||||
|
char nome[70];
|
||||||
|
char universidade[70];
|
||||||
|
char anoNascimento[7];
|
||||||
|
char cidadeNascimento[70];
|
||||||
|
char estadoNascimento[70];
|
||||||
|
} Jogador;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Se linha = "65,Joe Graboski,201,88,,1930,,"
|
||||||
|
* então
|
||||||
|
* novaLinha = "65,Joe Graboski,201,88,nao informado,1930,nao informado,nao informado"
|
||||||
|
*
|
||||||
|
* @param linha String com a linha do CSV.
|
||||||
|
* @param novaLinha String que receberá uma nova linha com os campos vazios
|
||||||
|
* preenchidos.
|
||||||
|
*/
|
||||||
|
void inserirNaoInformado(char *linha, char *novaLinha) {
|
||||||
|
int tam = strlen(linha);
|
||||||
|
for (int i = 0; i <= tam; i++, linha++) {
|
||||||
|
*novaLinha++ = *linha;
|
||||||
|
if (*linha == ',' && (*(linha + 1) == ',' || *(linha + 1) == '\0')) {
|
||||||
|
strcpy(novaLinha, "nao informado");
|
||||||
|
novaLinha += strlen("nao informado");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void tirarQuebraDeLinha(char linha[]) {
|
||||||
|
int tam = strlen(linha);
|
||||||
|
|
||||||
|
if (linha[tam - 2] == '\r' && linha[tam - 1] == '\n') // Linha do Windows
|
||||||
|
linha[tam - 2] = '\0'; // Apaga a linha
|
||||||
|
|
||||||
|
else if (linha[tam - 1] == '\r' || linha[tam - 1] == '\n') // Mac ou Linux
|
||||||
|
linha[tam - 1] = '\0'; // Apaga a linha
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param jogador Ponteiro para o jogador a receber os dados
|
||||||
|
* @param linha Linha do CSV. Ex.: "65,Joe Graboski,201,88,,1930,,"
|
||||||
|
*/
|
||||||
|
void ler(Jogador *jogador, char linha[]) {
|
||||||
|
char novaLinha[TAM_MAX_LINHA];
|
||||||
|
tirarQuebraDeLinha(linha);
|
||||||
|
inserirNaoInformado(linha, novaLinha);
|
||||||
|
|
||||||
|
jogador->id = atoi(strtok(novaLinha, ","));
|
||||||
|
strcpy(jogador->nome, strtok(NULL, ","));
|
||||||
|
jogador->altura = atoi(strtok(NULL, ","));
|
||||||
|
jogador->peso = atoi(strtok(NULL, ","));
|
||||||
|
strcpy(jogador->universidade, strtok(NULL, ","));
|
||||||
|
strcpy(jogador->anoNascimento, strtok(NULL, ","));
|
||||||
|
strcpy(jogador->cidadeNascimento, strtok(NULL, ","));
|
||||||
|
strcpy(jogador->estadoNascimento, strtok(NULL, ","));
|
||||||
|
}
|
||||||
|
|
||||||
|
void imprimir(Jogador *jogador) {
|
||||||
|
printf("[%d ## %s ## %d ## %d ## %s ## %s ## %s ## %s]\n",
|
||||||
|
jogador->id,
|
||||||
|
jogador->nome,
|
||||||
|
jogador->altura,
|
||||||
|
jogador->peso,
|
||||||
|
jogador->anoNascimento,
|
||||||
|
jogador->universidade,
|
||||||
|
jogador->cidadeNascimento,
|
||||||
|
jogador->estadoNascimento
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Jogador clone(Jogador *jogador) {
|
||||||
|
Jogador retorno;
|
||||||
|
|
||||||
|
retorno.id = jogador->id;
|
||||||
|
strcpy(retorno.nome, jogador->nome);
|
||||||
|
retorno.altura = jogador->altura;
|
||||||
|
retorno.peso = jogador->peso;
|
||||||
|
strcpy(retorno.anoNascimento, jogador->anoNascimento);
|
||||||
|
strcpy(retorno.universidade, jogador->universidade);
|
||||||
|
strcpy(retorno.cidadeNascimento, jogador->cidadeNascimento);
|
||||||
|
strcpy(retorno.estadoNascimento, jogador->estadoNascimento);
|
||||||
|
|
||||||
|
return retorno;
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue