Ir para conteúdo

POWERED BY:

Arquivado

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

pedrohcs

com comando

Recommended Posts

O programa deve fazer:

 

o usuario digita:

8+2

15-30

10*99

 

o programa fornece:

8+2=10

15-30=-15

10*99=990

 

Eu sei que com varios if() daria para fazer, mais gostaria de saber se existe algum comando que verifica se um character é um numero e informa ele de alguma forma.

Alguma dica?

 

Vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe uma característica no scanf chamada scanset, com ela você consegue filtrar os dados que vão entrar, pesquise sobre

só não intendi o porque quer saber se um caracter é um numero "/

está tentando fazer tipo uma calculadora ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use isdigit.

Acho que é mais fácil extrair os operadores e fazer a conta de acordo com cada um.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Filtro com isdigit

Use switch pra economizar nos ifs

 

Isis, sabe se existe algo paracido para filtrar operadores, tipo: "+","-","/","*" ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

indice ?? olha, testei o isdigit e não funcionou bem não, na primeira execução funciona de boa, depois desanda...

esse strchr é o mesmo que strstr ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Não é.

você testou o isdigit como? Porque se falhasse,meu trabalho de compiladores teria que dar pau; coisa que não aconteceu.

 

#include <ctype.h>
#include <stdio.h>
#include <string.h>
int main(void) {
 char *s = "2ujr9392nhaj-272ns 17";
 for(int i=0;i<strlen(s);i++)
 if (isdigit(s[i]))
	printf("\nDigito: %c",s[i]);
}

 

isis@nowhere:~/src/IMASTERS> gcc-4.2 -std=c99 ehnumero.c

isis@nowhere:~/src/IMASTERS> ./a.out

Digito: 2

Digito: 9

Digito: 3

Digito: 9

Digito: 2

Digito: 2

Digito: 7

Digito: 2

Digito: 1

Digito: 7

Compartilhar este post


Link para o post
Compartilhar em outros sites

testei assim:

#include "stdio.h"
#include "ctype.h"
#include "conio.h"
main()
{
	int num;
	printf("Digite um numero: ");
	scanf ("%d",&num);
	if (isdigit(num))
		printf("Correto");
	else
		printf("Errado");
	getch();
}
malz, mas não intendo de ponteiros ainda =(

Compartilhar este post


Link para o post
Compartilhar em outros sites

#include "ctype.h" ???

você definiu um ctype.h proprio?

 

Não precisa entender de ponteiro pra usar isdigit. E DIGITO é diferente de NUMERO. Ler o manual da função faz bem:

 

isdigit()

checks for a digit (0 through 9).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aspas são usadas pra quando você tem header fora do local padrão. Isso quer dizer que ou você baixou uma biblioteca de alguem ou você construiu uma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, e fora do local padrão pode ser em qualquer diretório ou tem que ser dentro da pasta do compilador (C:\Arquivos de programas\Microsoft Visual Studio) ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Fora do local padrão" é bem abrangente,né?

Se tiver tudo espalhado você tem que incluir os diretórios na busca do linker.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Geralmente o seu compilador tem uma pasta assim: includes/

Aí lá tem um monte de .h. Essa é a pasta padrão dos includes...

Veja bem:

Se você tentar incluir #include <iostream>, ele vai procurar por lá pelo iostream.

Agora, se você incluir #include "iostream", ele vai procurar, pelo menos o MEU compilador procura, na pasta onde está salvo o seu projeto (ou a partir dela).

Então resumindo: <biblioteca> inclui uma biblioteca padrão, "biblioteca" inclui uma biblioteca que você fez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahh saquei, daria na mesma então eu criar um biblioteca e salvar na pasta padrão include/ e usar o <biblioteca> ?

e esse "a partir dela", seria tudo que está dentro da pasta do projeto ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara isso é meio relativo...

Se você vai criar uma biblioteca pra usar em apenas um projeto acho estúpido botar ela nas bibliotecas globais lá...

Agora se você tá montando uma biblioteca para ser usada em mais projetos mais tarde, assim como você usa stdio e outras, aí sim.

E quanto ao "a partir dela", eu tava meio bebum quando escrevi aquilo kkkk mas eu quis dizer tipo #include "aux/minha.h" irá incluir a biblioteca da pasta aux na pasta do seu projeto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hmm, acho que entendi, mas só na prática mesmo pra pegar bem :D

vlws ^^

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.