Ir ao conteúdo
  • Cadastre-se

Ajuda com funções int isalpha (char cr) e int isdigit (char cr)


primjp

Posts recomendados

Olá pessoal,

Meu professor da faculdade passou um exercício (programa) para fazer, porém, pediu que utilizássemos duas funções jamais vistos pelos alunos.

O exercício é o seguinte:

Faça um programa onde o usuário digita 3 informações a respeito de uma pessoa: Nome, endereço e telefone. Concatene essas três informações em uma única string e faça uma contagem de quantas letras do alfabeto estão presentes nesta string (considerando as redundâncias) e também de dígitos numéricos. Os espaços e os caracteres de pontuação devem ser ignorados

(as funções de contagem já fazem isso).

Dica: use as funções int isalpha (char cr) e int isdigit (char cr).

Exemplo:

Nome: Ana Claudia

Endereço: Rui Barbosa, 234

Tel: 234-0912

Resultado:

Quantidade de letras pertencentes ao alfabeto = 20.

Quantidade de dígitos numéricos = 10

Já fiz concatenação com números, mas misturando caracteres e numeros nunca!!

Se puderem me dar uma luz...

Como utilizar as funções pedidas??? :o:wacko:

Aguardo..:(

Link para o comentário
Compartilhar em outros sites

Salve, primjp.

A função ISALPHA, só funciona com letras maiúsculas. Pra usar a função, todas as letras deverão estar em maiúsculas.

Seu campo "número de telefone" somente pode conter números. Com o caractere '-', vira uma string.

Dá uma olhada nesses exemplos, e veja se dá pra tirar alguma ideia.

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

char string1 [ ] = "ANA CLAUDIA";
char string2 [ ] = "RUI BARBOSA, 234";
long int numero = 2340912;

char buffer [ 64 ];

int main ( void )
{
int letras = 0, numeros = 0;
int contador = 0;

sprintf(buffer, "%s %s %Lu", string1,string2,numero);
for (contador = 0; contador < strlen ( buffer ); contador++)
{
if ( isalpha ( buffer [ contador ] ) == 1 ) letras++; else
if ( buffer [ contador ] >= '0' && buffer [ contador ] <= '9' ) numeros++;
}

return 1;
}

//===============================================================
//===============================================================
#include <ctype.h>
#include <stdio.h>
#include <string.h>

char string1 [ ] = "ANA CLAUDIA";
char string2 [ ] = "RUI BARBOSA, 234";
char string3 [ ] = "234-0912";

char buffer [ 64 ];

int main ( void )
{
int letras = 0, numeros = 0;
int contador = 0;

sprintf(buffer, "%s %s %s", string1,string2,string3);
for (contador = 0; contador < strlen ( buffer ); contador++)
{
if ( isalpha ( buffer [ contador ] ) == 1 ) letras++; else
if ( buffer [ contador ] >= '0' && buffer [ contador ] <= '9' ) numeros++;
}

return 1;
}

[]'s

Link para o comentário
Compartilhar em outros sites

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

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!