• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

[C] Ajuda: Criar uma frase abreviada

5 mensagens neste tópico

:wallbash:Escreva um programa que peça uma frase ao utilizador e crie uma nova frase

abreviada, onde só apareça a primeira letra de cada palavra seguida de um ponto. O

programa deve mostrar a frase alterada no ecrã.

Considere que as palavras se encontram separadas por um ou mais espaços e que

tanto no ínicio como no final da frase também podem existir espaços em branco. O

programa deve eliminar os espaços redundantes entre as palavras bem como os do

início e do fim da frase.

Exemplo de execução do programa:

Introduza uma frase: Hoje está um dia muito bonito

Frase transformada: H. e. u. d. m. b.

Malta!

neste exercicio, vou ter que ter um vector tipo char vetor[50] , mas como vou achar 1 palavra de cada palavra???

:wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes usar o 'strtok' para detectar espaços e depois usar a primeira letra de cada palavra para passar para outro array.

Um exemplo de utilização do 'strtok' podes ver aqui.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto não dá?

      char s[50];
      scanf("%s",s);
      printf("%c.",s[0]);
      while (scanf("%s",s)) {
            printf(" %c.",s[0]);
      }
      putchar('\n');

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas como vou achar 1 palavra de cada palavra???

achar a primeira palavra de cada palavra é capaz de ser complicado... :(

for(flag=1,i=0,j=0;str[i];i++)
{
  if(flag)
  {
    if(str[i]!=' ')
    {
      new[j]=str[i];
      new[++j]='.';
      new[++j]=' ';
      j++;
      flag=0;
    }
  }
  else if(str[i]==' ') flag=1;
}

isto deve resolver o problema (se é que percebi bem, não li com muita atenção)...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora