Ir ao conteúdo

Abreviar Strings em C++


ctrlv

Posts recomendados

Postado

olá pessoal olha eu aqui ,de novo, a carol, tenho que fazer um programa em Linguagem C que leia um nome EX.: CARoLInA dA SIlvA LOpes e abrevie os nomes do meio colocando todas a iniciais em maiusculo e o restante em minusculo, dessa forma Carolina D S Lopes, um problema ja resolvi colocar todas as iniciais em maiusculo e o restante em minusculo, o problema e abreviar alguem pode me ajudar? não precisa me dar o codigo pronto mas se me explicar como fazer, me dar uma ajuda seria bom. obrigado.

  • Membro VIP
Postado

Antes de falar do problema uma dica, no if "if(nome[i-1]== ' ' || i==0)", se i for 0 a primeira operação vai ler uma posição anterior a nome, isso pode causar um erro no programa se a posição anterior for invalida, uma forma de corrigir isso é invertendo as duas condições "if(i==0 || nome[i-1]== ' ')", assim se i for zero ele entra no if sem testar a segunda condição.

Agora sim, ao problema,

Minha sugestão é que você resolva em duas etapas, a primeira ja esta pronta (transformaNome), mas ela poderia guardar o número de palavras (por acaso, é o número de vezes que o "toupper" foi executado), e a segunda etapa vai da segunda até a penultima palavra (use o número de espaços pelos quais você ja passou para saber em qual palavra você esta) copiando a string (strcpy) a partir do espaço que vem depois da palavra para a segunda letra dela, sim, você precisara guardar onde fica a segunda letra antes de prosseguir, e depois de copiar a string essa posição deve ser o local de partida.

  • Membro VIP
Postado

Ah, uma segunda opção é fazer tudo em uma passagem só, um que aponta para a leitura da string e outro que aponta para aonde você esta escrevendo, os dois são incrementados a cada iteração do for, mas o de escrita passa a apontar para a segunda letra da palavra anterior (quarge essa informação) quando encontra um espaço, ignorando o primeiro espaço encontrado, claro.

  • 4 semanas depois...

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!