-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAtividade09_Filiacao.c
65 lines (60 loc) · 2.03 KB
/
Atividade09_Filiacao.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
//DECLARACOES:
//Declaracao de estruturas
struct tipoFiliacao
{
char nome[80];
char nomeMae[80];
char nomePai[80];
};
//-------//-------//-------
//Declaracao de funcoes
struct tipoFiliacao separaLinhaCSV(char linha[240]);
//-------//-------//-------
//-------------------------------------------------------
/*
int main()
{
struct tipoFiliacao parentesco;
parentesco = separaLinhaCSV("Aug Camp,Tim Maia,Cleber bambam");
printf("%s - %s - %s \n", parentesco.nome, parentesco.nomeMae, parentesco.nomePai);
return 0;
}
*/
//-------------------------------------------------------
//Funcao utilizada para separar nomes.
struct tipoFiliacao separaLinhaCSV(char linha[240])
{
struct tipoFiliacao parentesco;
int i=0, j=0, k=0;
//Armazena o primeiro nome:
while (linha[i] != ',')
{
parentesco.nome[i] = linha[i];
i++;
}
parentesco.nome[i] = '\0'; /*Necessario acrescentar o \0 para que não ocorra
o armazenamento de dados indesejaveis*/
//-----------------------------------------
//Armazena o nome da mae:
j=i+1; i=0;
while (linha[j] != ',')
{
parentesco.nomeMae[i] = linha[j];
i++; j++;
}
parentesco.nomeMae[i] = '\0';
//-----------------------------------------
//Armazena o nome do pai:
k=j+1; i=0;
while (linha[k] != ',' && linha[k] != '\0')
{
if(linha[k]==' ' || linha[k]>=65 && linha[k]<=122) /*Condicao necessaria para impedir que dados indesejados sejam armazenados*/
parentesco.nomePai[i] = linha[k];
i++; k++;
}
parentesco.nomePai[i] = '\0';
//-----------------------------------------
return parentesco;
}