Programação em C: Formatar Autores e Livro Para ABNT
Por: Luis Menardi • 18/5/2020 • Exam • 474 Palavras (2 Páginas) • 263 Visualizações
Página 1 de 2
																
								Alex R. Zani
Luis Felipe G. Menardi
- #include 
 - #include 
 - #include 
 
4
- char *copiar(char *s, int n, int p)
 - {
 - char *aux;
 - int comp;
 - comp=strlen(s);
 - if (p<comp)
 - {
 - aux=&s[p];
 - if (p+n<comp)
 - aux[n]='\0';
 - else
 - aux[strlen(aux)]='\0';
 - return(aux);
 - }
 - else
 - return (0);
 - }
 
22
- char *ultsob(char *s)
 - {
 - int i, n, comp;
 - char *aux;
 - comp=strlen(s);
 - i=comp-1;
 - n=0;
 - while (s[i]!=' ')
 - {
 - i=i-1;
 - n=n+1;
 - }
 - aux=copiar(s, n, i + 1);
 - strupr(aux);
 - return(aux);
 - }
 
39
- char *iniciais(char *s)
 - {
 - int i, k, comp;
 - char aux[40];
 - aux[0]= s[0];
 - aux[1]='.';
 - aux[2]=' ';
 - comp=strlen(s);
 - k=3;
 - for (i=1; i<comp-1; i++)
 - if ((s[i]==' ') && (s[i+1]!=' '))
 - {
 - aux[k]=s[i+1];
 - aux[k+1]='.';
 - aux[k+2]=' ';
 - k=k+3;
 - }
 - aux[k-3]='\0';
 - return (aux);
 - }
 - void deletacaracteres(char *s, int n, int p)
 - {
 - int i, comp;
 - char *aux;
 - comp=strlen(s);
 - if (p+n<=comp)
 - {
 - i=p;
 - while (i<=comp-n)
 - {
 - s[i]=s[i+n];
 - i=i+1;
 - }
 - }
 - else
 - s[p+1]='\0';
 - }
 
77
- int pos(char *s1, char *s2)
 - {
 - char *aux;
 - aux=strstr(s1, s2);
 - if (aux!=NULL)
 - return(aux-s1);
 - else
 - return (-1);
 - }
 
87
- void delprop(char *s, char *part)
 - {
 - int comp, p;
 - p=pos(s, part);
 - comp=strlen(part);
 - if ((p!=-1) && (s[p-1]==' ') && (s[p+comp]==' '))deletacaracteres(s, comp, p); 94 }
 
95
- void nomesautores()
 - {
 - int qtd;
 
99 printf("\nEntre com a quantidade de autores: ");
- scanf("%d", &qtd);
 - char aux[qtd][41];
 - char autores[qtd][41];
 - int i;
 - for(i=0; i<qtd; i++)
 - {
 
106 printf("\nDigite o nome do autor: ");
- fflush(stdin);
 - gets(autores[i]);
 - strcpy(aux[i], autores[i]);
 - delprop(aux[i], "de");
 - delprop(aux[i], "da");
 - delprop(aux[i], "das");
 - delprop(aux[i], "do");
 - delprop(aux[i], "dos");
 - delprop(aux[i], "e");
 - strcpy(autores[i], ultsob(aux[i]));
 - strupr(aux[i]);
 - strcat(autores[i], ", ");
 - strcat(autores[i], iniciais(aux[i]));
 - }
 - int g;
 - for(g=0; g<qtd; g++)
 - {
 - printf("%s,", autores[g]);
 - }
 - }
 
127
- main()
 - {
 - char titulo[51], editora[51];
 - int ed, ano;
 
132
- printf ("\nEntre com o titulo do livro: ");
 - gets (titulo);
 
135
136 printf("\nEntre com o numero da edicao do livro (digite 0 caso nao haja): "); 137 scanf("%d", &ed);
138 getchar();
139
- printf ("\nEntre com a editora: ");
 - gets (editora);
 
142
143
- printf ("\nEntre com o ano do livro: ");
 - scanf ("%d", &ano);
 
146
- if(ed>0)
 - {
 - nomesautores();
 - printf ("%s, %d.a ed., %s, %d. \n", titulo, ed, editora, ano); 151 }
 
152
- else
 - {
 - nomesautores();
 - printf (" %s, %s, %d. \n", titulo, editora, ano);
 - }
 
158
159 }
160
161
162
...
Disponível apenas no TrabalhosGratuitos.com