pedrohcs 0 Denunciar post Postado Junho 8, 2008 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
gRoOvE 0 Denunciar post Postado Junho 8, 2008 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
_Isis_ 202 Denunciar post Postado Junho 8, 2008 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
gRoOvE 0 Denunciar post Postado Junho 8, 2008 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
_Isis_ 202 Denunciar post Postado Junho 9, 2008 Procura o indice dele. Acho que strchr faz isso. Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Junho 9, 2008 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
_Isis_ 202 Denunciar post Postado Junho 9, 2008 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
gRoOvE 0 Denunciar post Postado Junho 9, 2008 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
_Isis_ 202 Denunciar post Postado Junho 9, 2008 #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
gRoOvE 0 Denunciar post Postado Junho 14, 2008 não defini ctype.h próprio não. Não tenho que incluir a biblioteca pra poder usar suas respectivas funções ?? hseuaehueae, era por isso que dava errado http://forum.imasters.com.br/public/style_emoticons/default/blush.gif Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Junho 14, 2008 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
gRoOvE 0 Denunciar post Postado Junho 14, 2008 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
_Isis_ 202 Denunciar post Postado Junho 14, 2008 "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
gRoOvE 0 Denunciar post Postado Junho 21, 2008 como assim, busca do linker ? Compartilhar este post Link para o post Compartilhar em outros sites
José Enésio 4 Denunciar post Postado Junho 21, 2008 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
gRoOvE 0 Denunciar post Postado Junho 21, 2008 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
José Enésio 4 Denunciar post Postado Junho 21, 2008 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
gRoOvE 0 Denunciar post Postado Junho 23, 2008 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