Ir para conteúdo
Fórum Script Brasil
  • 0

Strings


Isabella

Pergunta

Estou tentando fazer o seguinte programa:

aça um programa que dado um nome completo, retorne a abreviatura deste nome. Não se deve abreviar as preposições como: do, de, etc. A abreviatura deve vir separada por pontos. Ex: Paulo Jose de Almeida Prado. Abreviatura: P.J.A.P.

Porem se eu digitar o De com o d maiusculo ele ira retornar o D, tentei fazer se dpois do espaço fiesse um vetor com 2 posições, não contava, porém não consegui escrever isso em c

o meu codigo vai abaixo:

#include <stdio.h>
#include <conio.h>
main()
{
 char nome[50];
 int i;
 printf("Digite o nome completo com inicais maiusculas: ");
 gets(nome);
 printf("Nome abreviado: ");
 for(i=0;i<50;i++)
  if ((nome[i]>='A')&&(nome[i]<='Z'))
   printf("%c.", nome[i]);
    getch();
}
E o outro é o seguinte Faça um programa que leia uma string de até 30 caracteres e duas letras L1 e L2. O programa deve trocar todas as letras L1 encontradas na string por L2, e retornar o número de letras que foram trocadas. Mas eu so consigo, na hora de aparecer aparecem infinitos numeros rsrs veja o codigo:
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main()
{
char l1,l2, frase[31];
int i, k = 0, cont=0;
printf("Digite uma letra qualquer: ");
scanf("%c",&l1);
getchar();
printf("Digite outra letra qualquer: ");
scanf("%c",&l2);
printf("Digite uma frase com ate 30 digitos: ");
scanf("%s",frase);

for(i=0; frase[i] != ''; i++)
{ 
if (frase[i]==' ') { // Se encontrar um espaço
cont++; // Soma no contador
}
for( i=0; (i <= strlen(frase)); i++)
if ( frase[i] == l1 )
{
frase[i] = l2;
k += 1;
}
printf("\n O numero de letras trocadas foi: %d",k);


getch ( );
}

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Em relação ao segundo problema...

Olha... aqui o segundo não está nem compilando (usando o GCC/Linux)... Faltam "chaves"...

O código também está estranho, parece que não foi a mesma pessoa que escreveu ele inteiro...

O primeiro "for" está meio sem sentido... Pra que ele serve?

Você usou o scanf para ler a string, mas ele ele não funciona se a string tiver mais de uma palavra... Troquei pelo gets, mas esse também é perigoso...

#include <stdio.h>
#include <string.h>

int main(void)
{
    char l1,l2, frase[31];
    int i, k = 0, cont=0;
    printf("Digite uma letra qualquer: ");
    scanf("%c",&l1);
    getchar();
    printf("Digite outra letra qualquer: ");
    scanf("%c",&l2);
    getchar();
    printf("Digite uma frase com ate 30 digitos: ");
    gets(frase);

    for(i=0;frase[i]!=''; i++) {         /* Essas duas chaves são redundantes */
        if (frase[i]==' ') {
        cont++;
        }
    }                                      /* Essas duas chaves são redundantes */
    for(i=0;frase[i]!=''; i++)
        if ( frase[i] == l1 ) {
            frase[i] = l2;
            ++k;
    }
    printf("\nO numero de letras trocadas foi: %d\nA nova stringe é: %s\nAs letras trocadas são %c e %c",k,frase,l1,l2);
}

Tipo... nas condições coloque \ 0 (sem o espaço) entre as aspas simples.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom sobre a segundo problema...

o codigo nem compila mesmu...

o primero for ta sem sentido oõ

mas o for assim do jth vai substitui so

o l1 se a letra for l2 ele n substitui

então deve ser assim =P

for(i=0;frase[i]!=''; i++) {         

    if(frase[i]==l1)/* se frase[i] ==l1 ele troca*/
    {
        frase[i]=l2;
        ++k;
    }
    else if(frase[i]==l2)/*senao se frase[i] for igual a l2 ele troca*/
    {
        frase[i]=l1;
        ++k;
    }


    }

eu acho q deve se por ae

o gets é perigoso mesmo sauahs

use fgets =P

t+

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...