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

DUVIDA FRASE CRIPTOGRAFADA


Leliabh

Pergunta

Bom dia amigos, tenho que fazer um programa para criptografar uma frase digitada , substituindo as vogais por *

Comecei a fazer só que esta dando erro , e já quebrei a cabeça e não acho a solução ..

segue script

#include<iostream>

#include<conio.h>

#include<stdio.h>

#include<string.h>

#include<ctype.h>

using namespace std;

int main()

{

char *frase, letra;

int tam,i;

frase=strdup("");

cout<<"\nEscreva uma frase\n";

gets(frase);

tam=strlen(frase);

}

for(i=0;i<tam,i++)

{

letra=frase;

letra=toupper(letra);

if ((letra == "A") ||(letra == "E") ||(letra == "I") ||(letra == "O") ||

(letra == "U"))

{

frase='*';

}

}

}

cout<<frase;

getch();

}

:wacko:

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá!

Existem algumas coisas no seu programa que são o motivo de não funcionar:

1- Ao invés de declarar frase como ponteiro e usar o strdup, declare frase como vetor.

char frase[100], letra;
2- para comparar um char, use aspas simples. Aspas dupla indicam uma sequência de caracteres.
if(letra == 'A')

Edit: Remova a linha com o strdup

Abraços,

Marcelo Utikawa da Fonseca

Editado por Marcelo Utikawa da Fonseca
Link para o comentário
Compartilhar em outros sites

  • 0

Efetuei as operações porem ele só esta lendo o inicio da frase, quando dá espaço ele não lê e não consigo achar o erro.

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <iostream>

using namespace std;

int main(char)

{

char frase[100];

int i=0,vogal;

printf("Digite uma frase :\n\n");

scanf("%s[^\n]",frase);

vogal=frase;

vogal=toupper(vogal);

for(i=0;i<strlen(frase);i++)

{

if(vogal=='a' || vogal=='e' || vogal=='i' || vogal=='o' || vogal=='u' ||

vogal=='A'|| vogal=='E' || vogal=='O' || vogal=='U')

{

frase='*';

}

}

printf(frase);

system("PAUSE>null");

return 0;

}

Link para o comentário
Compartilhar em outros sites

  • 0

o seu primeiro scanf() para pegar o conteúdo da frase está usando dois operadores: %s e %[^\n], ambos são diferentes, retire o %s para poder pegar a frase inteira inclusive com espaços.

vogal=frase[i]; //vai atribuir apenas a primeira posição do vetor frase
vogal=toupper(vogal);// converte apenas uma letra
você poderia dispensar essa variavel vogal e usar diretamente frase para verificar quais são vogais o Seu último printf() está faltando colocar qual o tipo da variável, lembre da sintaxe do printf:
printf("%d",inteiro); // quero imprimir um variavel do tipo inteiro

Como você tem uma string, poderia fazer um outro for para imprimir todos os caracteres modificados

Boa sorte ^^

Link para o comentário
Compartilhar em outros sites

  • 0

Analise este codigo:

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

int isvogal(int c)
{
    if((c >= 'A')&&(c <= 'Z'))
        c = 'a' + (c - 'A');
    switch(c)
    {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            return 1;
    }
    return 0;
}

int main(int argc, char* argv[])
{
    char frase[256];
    int i = 0;
    
    printf("Insira uma frase:\n");
    fgets(frase, 256, stdin);
    
    while(frase[i] != 0)
    {
        if(isvogal(frase[i]))
            frase[i] = '*';
        i++;
    }
    printf("Frase: %s\n", frase);
    return 0;
}

Espero ter ajudado. Boa Sorte!

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...