Ir ao conteúdo
  • Cadastre-se

Caracteres Especiais


reuter_rjort

Posts recomendados

Bom, estou tendo problemas em verificar os caracteres especiais contidos numa string... segue parte do enunciado da questão:

 

"-Senha: + de 6 caráteres e – de 15. Ao menos uma maiúscula, uma minúscula, um número e um símbolo".

 

estou o inicio do codigo de analise para essa parte, onde estou criando um ponteiro que recebe a string e ira rodar num while caracter a caracter usando as funções da biblioteca ctype.h, segue o codigo (em construção):

int passw_analise(char passw[SIZE])
{
  char* p = NULL;
  p = passw;
  while(p == '\0'){
    //aqui contera if/elseif/else com funções da lib. ctype para analise 
  }
}

o problema é que pesquisando as funções da lib. ctype nao encontrei nunhuma que verifica se o caractere é um caractece especial (exemplo: $, _, !, >, #).

Alguem poderia me da uma luz de como fazer um codigo que verifique esses tipos de caracteres???

Obrigado desde já! =)

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Se você precisa apenas verificar se é maiuscula, minuscula ou especial pode fazer um teste para verificar se é letra do alfabeto maiuscula ou minuscula caso contrario é especial.

 

Algo assim:

 

#include<stdio.h>
 
int main()
{
    char palavra[50];
    int i;
    int minuscula, maiuscula, especial;
 
    printf("Digite a palavra: ");
    gets(palavra);
    
    minuscula = 0;
	maiuscula = 0;
	especial = 0;
 
    for(int i=0;palavra[i]!='\0';i++)
    {        
        if((palavra[i]>='A' && palavra[i]<='Z') || (palavra[i]>='a' && palavra[i]<='z'))
        {
            if((palavra[i]>='A' && palavra[i]<='Z'))
            {
                maiuscula++;
            }
            else
            {
                minuscula++;
            }
        }
        else
        {
            especial++;
        }
    } 
    
    printf("\nCaracteres em maiuscula: [ %d ]\n",maiuscula);
    printf("\nCaracteres em minuscula: [ %d ]\n",minuscula);
    printf("\nCaracteres especiais: [ %d ]\n",especial);
 
    return 0;
}

Esse não verifica digito mas ai é só seguir a mesma lógica e criar o teste para verificar entre 0 e 9

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!