tilfeldignavn Skrevet 3. november 2004 Del Skrevet 3. november 2004 Hai! Jeg trenger en kode for å sjekke at et telefonnummer kun inneholder tall og ikke tegn eller bokstaver. Ønsker å gjøre dette med en bool-funksjon (true eller false). Noen som har et tips eller to..? På forehand takk. Lenke til kommentar
Dead_Rabbit Skrevet 3. november 2004 Del Skrevet 3. november 2004 Det finnes jo en del slike is[tegntype]() funksjoner som du kan sjekke ut. Eller så kan du i "verstefall" lage deg din egen lille is[et eller annet]() funksjon. Bruke en enum til å ramse opp de du vil/ikke vil ha med? Lenke til kommentar
tilfeldignavn Skrevet 3. november 2004 Forfatter Del Skrevet 3. november 2004 Ok. Vil helst benytte en bool-funksjon, og i den forbindelse retunere en "1" eller "0", "true" eller "false".. Lenke til kommentar
Peter Skrevet 3. november 2004 Del Skrevet 3. november 2004 (endret) Ganske fersk selv, men tror dette skulle funke... bool isInt(std::string str) { unsigned int i; for(i=0;i<str.length();i++) { if(((int)str[i] < 0x30) || ((int)str[i] > 0x39)) return false; } return true; } Endret 3. november 2004 av Nazgul Lenke til kommentar
tilfeldignavn Skrevet 5. november 2004 Forfatter Del Skrevet 5. november 2004 Takker! Lenke til kommentar
lodott Skrevet 5. november 2004 Del Skrevet 5. november 2004 (endret) Ganske fersk selv, men tror dette skulle funke... bool isInt(std::string str) { unsigned int i; for(i=0;i<str.length();i++) { if(((int)str[i] < 0x30) || ((int)str[i] > 0x39)) return false; } return true; } Den vil alltid returnere true. bool isInt(std::string str) { bool temp = true; for(int i=0;i<str.length();i++) { if(((int)str[i] < 0x30) || ((int)str[i] > 0x39)) temp = false; } return temp; } Noe sånt...har ikke testet den if`en der... Endret 5. november 2004 av lodott Lenke til kommentar
iobas Skrevet 5. november 2004 Del Skrevet 5. november 2004 (endret) Ganske fersk selv, men tror dette skulle funke... bool isInt(std::string str) { unsigned int i; for(i=0;i<str.length();i++) { if(((int)str[i] < 0x30) || ((int)str[i] > 0x39)) return false; } return true; } Den vil alltid returnere true. bool isInt(std::string str) { bool temp = true; for(int i=0;i<str.length();i++) { if(((int)str[i] < 0x30) || ((int)str[i] > 0x39)) temp = false; } return temp; } Noe sånt...har ikke testet den if`en der... gratulerer lodott! du pastet AKKURAT den samme versjonen bare at du gjorde den treigere! jeg mener, hvorfor skal man returnere hvis man finner noe som ikke er et tall? bedre å loope gjennom resten av stringen bare for å bruke litt ekstra tid, i hvertfall når du får med en ekstra temp variabel på kjøpet også, syns du ikke lodott? dermed overrekker jeg deg "det er bedre å holde kjeft å la folk tro du er dum enn å åpne kjeften og fjerne alle tvil"-prisen. Endret 5. november 2004 av iobas Lenke til kommentar
lodott Skrevet 5. november 2004 Del Skrevet 5. november 2004 dermed overrekker jeg deg "det er bedre å holde kjeft å la folk tro du er dum enn å åpne kjeften og fjerne alle tvil"-prisen. Hehehe beklager så mye. Den fortjente jeg! Jeg blingset og fikk ikke med meg at han hadde skrevet "return false" midt i der. Lenke til kommentar
kjetil7 Skrevet 6. november 2004 Del Skrevet 6. november 2004 (endret) Det er også unødvendig med all castingen til int: bool is_digits(const std::string & str) { std::string::const_pointer p = str.c_str(); while(0 != *p) { if(*p < 0x30 || *p > 0x39) return false; ++p; } return true; } // eller med locales.. bool is_digits(const std::string & str, const std::locale & loc) { std::string::const_pointer p = str.c_str(); while(0 != *p) { if(!std::isdigit(*p++, loc)) return false; } return true; } Endret 6. november 2004 av kjetil7 Lenke til kommentar
søppel Skrevet 6. november 2004 Del Skrevet 6. november 2004 Vet ikke i hvilken sammenheng dette skal brukes, men det kan eventuellt være en idé å ta hensyn til om brukeren taster inn mellomrom i telefonnummeret. (400 4848 3 :]) Lenke til kommentar
kjetil7 Skrevet 6. november 2004 Del Skrevet 6. november 2004 Sant nok . Kanskje antall siffer også? Og hva med +47? r-r-r-eeg *host* - ex Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå