TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Programação em C: Formatar Autores e Livro Para ABNT

Por:   •  18/5/2020  •  Exam  •  474 Palavras (2 Páginas)  •  198 Visualizações

Página 1 de 2

Alex R. Zani

Luis Felipe G. Menardi

  1. #include
  2. #include
  3. #include

4  

  1. char *copiar(char *s, int n, int p)
  2. {
  3. char *aux;
  4. int comp;
  5. comp=strlen(s);
  6. if (p<comp)
  7. {
  8. aux=&s[p];
  9. if (p+n<comp)
  10. aux[n]='\0';
  11. else
  12. aux[strlen(aux)]='\0';
  13. return(aux);
  14. }
  15. else
  16. return (0);
  17. }

22  

  1. char *ultsob(char *s)
  2. {
  3. int i, n, comp;
  4. char *aux;
  5. comp=strlen(s);
  6. i=comp-1;
  7. n=0;
  8. while (s[i]!=' ')
  9. {
  10. i=i-1;
  11. n=n+1;
  12. }
  13. aux=copiar(s, n, i + 1);
  14. strupr(aux);
  15. return(aux);
  16. }

39  

  1. char *iniciais(char *s)
  2. {
  3. int i, k, comp;
  4. char aux[40];
  5. aux[0]= s[0];
  6. aux[1]='.';
  7. aux[2]=' ';
  8. comp=strlen(s);
  9. k=3;
  10. for (i=1; i<comp-1; i++)
  11. if ((s[i]==' ') && (s[i+1]!=' '))
  12. {
  13. aux[k]=s[i+1];
  14. aux[k+1]='.';
  15. aux[k+2]=' ';
  16. k=k+3;
  17. }
  18. aux[k-3]='\0';
  19. return (aux);
  20. }
  21. void deletacaracteres(char *s, int n, int p)
  22. {
  23. int i, comp;
  24. char *aux;
  25. comp=strlen(s);
  26. if (p+n<=comp)
  27. {
  28. i=p;
  29. while (i<=comp-n)
  30. {
  31. s[i]=s[i+n];
  32. i=i+1;
  33. }
  34. }
  35. else
  36. s[p+1]='\0';
  37. }

77  

  1. int pos(char *s1, char *s2)
  2. {
  3. char *aux;
  4. aux=strstr(s1, s2);
  5. if (aux!=NULL)
  6. return(aux-s1);
  7. else
  8. return (-1);
  9. }

87  

  1. void delprop(char *s, char *part)
  2. {
  3. int comp, p;
  4. p=pos(s, part);
  5. comp=strlen(part);
  6. if ((p!=-1) && (s[p-1]==' ') && (s[p+comp]==' '))deletacaracteres(s, comp, p); 94           }

95  

  1. void nomesautores()
  2. {
  3. int qtd;

99            printf("\nEntre com a quantidade de autores: ");

  1. scanf("%d", &qtd);
  2. char aux[qtd][41];
  3. char autores[qtd][41];
  4. int i;
  5. for(i=0; i<qtd; i++)
  6. {

106           printf("\nDigite o nome do autor: ");

  1. fflush(stdin);
  2. gets(autores[i]);
  3. strcpy(aux[i], autores[i]);
  4. delprop(aux[i], "de");
  5. delprop(aux[i], "da");
  6. delprop(aux[i], "das");
  7. delprop(aux[i], "do");
  8. delprop(aux[i], "dos");
  9. delprop(aux[i], "e");
  10. strcpy(autores[i], ultsob(aux[i]));
  11. strupr(aux[i]);
  12. strcat(autores[i], ", ");
  13. strcat(autores[i], iniciais(aux[i]));
  14. }
  15. int g;
  16. for(g=0; g<qtd; g++)
  17. {
  18. printf("%s,", autores[g]);
  19. }
  20. }

127  

  1. main()
  2. {
  3. char titulo[51], editora[51];
  4. int ed, ano;

132  

  1. printf ("\nEntre com o titulo do livro: ");
  2. 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  

  1. printf ("\nEntre com a editora: ");
  2. gets (editora);

142  

143  

  1. printf ("\nEntre com o ano do livro: ");
  2. scanf ("%d", &ano);

146  

  1. if(ed>0)
  2. {
  3. nomesautores();
  4. printf ("%s, %d.a ed., %s,  %d. \n", titulo, ed, editora, ano); 151           }

152  

  1. else
  2. {
  3. nomesautores();
  4. printf (" %s, %s, %d. \n", titulo, editora, ano);
  5. }

158  

159               }

160  

161  

162  

...

Baixar como (para membros premium)  txt (3.2 Kb)   pdf (51.7 Kb)   docx (11.9 Kb)  
Continuar por mais 1 página »
Disponível apenas no TrabalhosGratuitos.com