Ir para conteúdo

POWERED BY:

Arquivado

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

EDSONKOMBAT

Descartar espaços de uma string C

Recommended Posts

Boa Noite.

 

Estou com esse código com uma dúvida como fazer para terminar este programa.

Aqui o programa recebe uma string do usuário e verifica quantas letras existem nessa string.Os espaços,vírgulas e pontos não devem ser contados.

 

o código está assim:

 

 

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
#include <string.h>
int main (void)
{
   
int x,tam;
char nome[30];
for (x=1; x <= 4; x++)
{
   
printf("Digite uma frase: ");
gets(nome);
// na variavel tam ficará guardado quantas letras tem o nome
tam = strlen(nome);
printf("\nEsse nome tem %d\ letras.\n\n",tam);
}
printf("\n \n");
system("pause");
return (0);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, em primeiro lugar, você não precisa incluir estas bibliotecas no código:

#include <conio.h>
#include <math.h>

Para descobrir o que cada elemento da string que será lida, deve usar a tabela ascii e comparações. Com if ou switch.

Link da tabela ascii:

http://www.asciitable.com/

Compartilhar este post


Link para o post
Compartilhar em outros sites
#include <stdio.h>

int isvld (int ch)
{
#define _(c)  (c != ch)
    /* Insira aqui os caracteres que não devem ser contados. */
    return _(' ') && _(',') && _('.') && _('!') &&
           _(';') && _('?') && _(':') && _('\t');
#undef _
}

int count (const char* s)
{
    int ct = 0;
    
    while(*s != '\0')
        ct += isvld(*s++);
    
    return ct;
}

int main (int argc, char** argv)
{
    /* O resto é com você! */
    const char buffer[] = "Hello World!";
    
    printf("%s %d\n", buffer, count(buffer));
    return 0;
}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.