Enviado em 23/06/2019 - 19:34h
Preciso fazer um código que a primeira entrada seja o número de nomes que vou digitar e ele abrevia esses nomes como nos exemplos abaixo:
#include <stdio.h>
#include <string.h>
//Essa funcao remove as palavras indesejadas
void removerSubstring(char *s,const char *remover)
{
while((s = strstr(s,remover)) != NULL)
memmove(s, s + strlen(remover), 1 + strlen(s+strlen(remover)));
}
void abrevia(char *nome)
{
char aux [51];
int i,auxiliarult,j,ult,esp=0;
for (i=0;i<strlen(nome);i++) if (nome[i]==' ') esp++; //conta o nº de nomes
for (i=0;i<strlen(nome);i++)
{
j=0;
if (nome[i]==' ') j++;
ult=i+1; //posição do começo do último nome
}
for (i=0;i< strlen(nome)-(ult-1);i++) // passa o ultimo nome para um auxiliar
{
auxiliarult=ult;
aux[i]=nome[auxiliarult];
auxiliarult++;
}
int proxlivre=strlen(nome)-ult+2; //prox. posição livre no aux
aux[proxlivre]=','; // adiociona a virgula dps do nome
proxlivre++;
aux[proxlivre]=' '; // adiociona o espaço
proxlivre++;
aux[proxlivre]=nome[0]; // adiociona 1ª inicial
proxlivre++;
aux[proxlivre]='.';
proxlivre++;
aux[proxlivre]=' ';
proxlivre++;
for (i=0;i<ult;i++)
{
if (nome[i]==' ')
{
aux[proxlivre]=nome[i+1];
proxlivre++;
aux[proxlivre]='.';
proxlivre++;
}
}
printf ("%s",aux);
strcpy(nome,aux);
}
int main( void ){
int n,i;
char nome [51];
scanf ("%d",&n);
getchar();
for (i=1;i<=n;i++){
gets (nome);
removerSubstring(nome, "da "); //usamos a função para remover
removerSubstring(nome, "das ");// todas as palavras que devem
removerSubstring(nome, "de "); // ser ignoradas
removerSubstring(nome, "des ");
removerSubstring(nome, "do ");
removerSubstring(nome, "dos ");
abrevia(nome);
puts(nome);
}
return 0;
}
Atualizando o Passado: Linux no Lenovo G460 em 2025
aaPanel - Um Painel de Hospedagem Gratuito e Poderoso
O macete do Warsaw no Linux Mint e cia
Um modo leve de ouvir/ver áudio/vídeo da internet em máquinas pererecas
Resolver algumas mensagens de erro do SSH
Instalar módulo de segurança do Banco do Brasil Warsaw do tipo .run
Sem espaço na partição home (2)
O que você está ouvindo agora? [2] (190)
Procrastinação e autossabotagem são problemas muito comuns na sociedad... (5)