Programação em C: Formatar Autores e Livro Para ABNT
Por: Luis Menardi • 18/5/2020 • Exam • 474 Palavras (2 Páginas) • 198 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