Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Provjera brojeva i znakova u C-u

[es] :: C programiranje :: Provjera brojeva i znakova u C-u

[ Pregleda: 1135 | Odgovora: 8 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

odwalla
Zagreb

Član broj: 56396
Poruke: 5
*.sava.sczg.hr.



Profil

icon Provjera brojeva i znakova u C-u27.04.2005. u 21:22

Mene zanima,ako neko moze da mi kaze, kako napraviti funkciju pomocu koje mogu proveriti da li su znakovi uneseni sa tipkovnice brojevi ili neki drugi znak,da se na primer ne bi desilo da program "racuna" sa slovima?
27.04.2005. u 21:22 

zokiiii
Zagreb

Član broj: 47412
Poruke: 174
*.net.t-com.hr.

Sajt: www.logicamera.com


Profil

icon Re: Provjera brojeva i znakova u C-u27.04.2005. u 21:32
Provjeravaj preko ASCII -a
Znamo da su brojevi od 48 do 57 -ukljucujuci .. a slova od 65 do 122-ukljucujuci
Pa provjeravaj
evo nekakav pseudokod

if ( broj >= 48 && broj <=57) {racunaj nesto
pozovi funckiju;
}
else {
unjeli ste slovo ;
}

valjda sam pogodio ovo vece-jednako i manje-jednako ..
27.04.2005. u 21:32 

george_w

Član broj: 20754
Poruke: 16
*.tel.net.ba.



Profil

icon Re: Provjera brojeva i znakova u C-u27.04.2005. u 21:47
standardne funkcije c-a:

#include <ctype.h>

int isdigit(int znak);
int isalpha(int znak);
int isalnum(int znak);


ako bas hoces napravit svoju funkciju, npr:

int jelislovo(int znak)
{
return isalpha(znak);
}
27.04.2005. u 21:47 

odwalla
Zagreb

Član broj: 56396
Poruke: 5
*.phy.hr.



Profil

icon Re: Provjera brojeva i znakova u C-u28.04.2005. u 10:46
Taj isalnum je dobar,ali mi treba nesto sto ce mi provjeriti da li je to broj i ukoliko je da sa njim racunam,a ukoliko nije da mi ne izlazi iz programa nego da me vrati na pocetak programa.U programu imam nesto ovako:

printf("Unesite polumjer kugle\n");
scanf("%f", &veliki_polumjer);
kugla(veliki_polumjer);

I onda bi mi trebalo da proverim koji je znak pre nego ga posaljem u funkciju kugla,i ako je broj sve super,a ako nije da program ponovo trazi da se unese polumjer.Ako je to moguce izvesti?Probavao sam nesto sa petljama i ascii-em ali onda ako unesim broj koji je izmedju ascii vrijednosti slova njega isto tretira kao slovo!
28.04.2005. u 10:46 

george_w

Član broj: 20754
Poruke: 16
*.tel.net.ba.



Profil

icon Re: Provjera brojeva i znakova u C-u28.04.2005. u 17:05
onda ovako:

Code:

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

float kugla(float);

void main()
{
    char broj[5];
    char znak;
    float r;
    int i, pravibroj;

    printf("Unesi poluprecnik --> ");

    do
    {
        gets(broj);

        pravibroj = 1;

        for(i=0; i<strlen(broj); i++)
        {
            if(isalpha(broj[i]))
              pravibroj = 0;
        }

        if(pravibroj == 0)
            printf("\nPogresan broj! Haj ponovo --> ");
    }
    while(pravibroj == 0);

    r = atof(broj);

    printf("Zapremina kugle, poluprecnika %.2f je %.2f", r, kugla(r));
}

float kugla(float r)
{
    return r*r*r;
}

28.04.2005. u 17:05 

george_w

Član broj: 20754
Poruke: 16
*.tel.net.ba.



Profil

icon Re: Provjera brojeva i znakova u C-u28.04.2005. u 17:06
Ako ti nesto nije jasno u gornjem kodu, pitaj...


Pozdrav!
28.04.2005. u 17:06 

yooyo
Centroid / Technical director

Član broj: 4891
Poruke: 1101
*.beotel.net.



Profil

icon Re: Provjera brojeva i znakova u C-u28.04.2005. u 19:22
Citat:
odwalla: Taj isalnum je dobar,ali mi treba nesto sto ce mi provjeriti da li je to broj i ukoliko je da sa njim racunam,a ukoliko nije da mi ne izlazi iz programa nego da me vrati na pocetak programa.U programu imam nesto ovako:

printf("Unesite polumjer kugle\n");
scanf("%f", &veliki_polumjer);
kugla(veliki_polumjer);


A da malo procitas kako se koristi scanf! Da te malo postedim muke... scanf vraca
broj uspesno konvertovanih i dodeljenih polja. U tvom slucaju ovako:

Code:

if ((scanf("%f", &veliki_polumjer) != 1)
{
 // greska...
}
// ovde veliki_polumjer ima korektnu unetu vrednost


scanf je vrlo mocna funkcija jer pametnim opisom input stringa mozes da parsujes
i komlikovanije ulaze. Primer:

Code:
char funkcija[30];
float broj;
scanf("%[^(]( %f )", funkcija, &broj);


cita ulazu obliku sin(3.1415), gde ce funkcija sadzati 'sin', a broj ce biti 3.1415

yooyo

28.04.2005. u 19:22 

odwalla
Zagreb

Član broj: 56396
Poruke: 5
*.math.hr.



Profil

icon Re: Provjera brojeva i znakova u C-u29.04.2005. u 16:25
Ja to bio resio ovako:

R1:
printf("Unesite polumjer kugle\n");
scanf("%f", &veliki_polumjer);
if((veliki_polumjer>=0.00000)&&(veliki_polumjer>=999999999.99991)
kugla(veliki_polumjer);
else{
printf("Greska!\n");
goto R1;
}

Al mislim da cu se koristiti i vasim odgovorima.Ipak puno vam hvala.Pozdrav svima!

By the way yooyo,a je li znas gde imaju objasnja za sve te funkcije, koliko god znao hteo bi jos!
29.04.2005. u 16:25 

xxxrugby

Član broj: 16068
Poruke: 643
*.ericsson.net.

Sajt: www.zagreb-rugby.hr


Profil

icon Re: Provjera brojeva i znakova u C-u29.04.2005. u 19:39
Bas najstandardnije
http://cplusplus.com

http://www.acm.uiuc.edu/webmonkeys/book/c_guide/

Google it. Nema boljeg!
A ostalo. Evo i prvi hintovi najbolji!
http://www.google.com/search?h...ce&btnG=Tra%C5%BEi&lr=


xxxrugby: "We are all philosophers, when question is about politics!"
29.04.2005. u 19:39 

[es] :: C programiranje :: Provjera brojeva i znakova u C-u

[ Pregleda: 1135 | Odgovora: 8 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.