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;
}
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Aplicativo simples para gravar tela
Quebra de linha na data e hora no Linux Mint
Firefox não abre em usuário não administradores (0)
Sempre que vou baixar algum pacote acontece o erro dpkg (8)
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (8)