koumos Δημοσ. 22 Μαρτίου 2008 Δημοσ. 22 Μαρτίου 2008 Καλησπερα! θα ηθελα να σας ρωτησω πως μπορω να κανω ελεγχο σε ενα στρινγκ που θα γινεται εισαγωγη απο το χρηστη, αν αυτο ειναι συγκεκριμενα 0 ή 1? δηλαδη τι εννοω: θελω ο χρηστης να εισαγει στρινγκ κ αν δεν ειναι ολο το στρινγκ 0 ή 1 να του πεταει μυνημα λαθους κ να τον παραπεμπει να εισαγει σωστο στρινγκ.. πρεπει να ειναι η εντολη if (??)... Οποιος ξερει ας βοηθησει γιατι ψιλοεπειγει...
parsifal Δημοσ. 22 Μαρτίου 2008 Δημοσ. 22 Μαρτίου 2008 Αν οι μόνες αποδεκτές επιλογές σε αυτό το στάδιο είναι ο αριθμός 0 ή 1, γιατί να διαβάζεις την είσοδο του χρήστη ως string και όχι ως int... ;
koumos Δημοσ. 22 Μαρτίου 2008 Μέλος Δημοσ. 22 Μαρτίου 2008 μα και ως στρινγκ να διαβαζω την εισοδο παλι θα θελω μονο 0 ή 1..δηλαδη οποιο αλλο ακεραιο και να μου δωσει εγω πρεπει να ελεγξω ενα ενα το καθε ψηφιο για το αν ειναι 0 ή 1..μηπως ξερεις αυτο πως γινεται??
parsifal Δημοσ. 22 Μαρτίου 2008 Δημοσ. 22 Μαρτίου 2008 πρεπει να ελεγξω ενα ενα το καθε ψηφιο για το αν ειναι 0 ή 1.. Μάλλον δεν κατάλαβα καλά τί ζητάς, αν και με αυτό που έγραψες τώρα έχω μία υποψία περί τίνος πρόκειται. Δώσε όμως μερικά παραδείγματα έγκυρου και invalid input, για να σιγουρευτώ...
koumos Δημοσ. 22 Μαρτίου 2008 Μέλος Δημοσ. 22 Μαρτίου 2008 ok! εγκυρα input θεωρουνται: 0010101010,001,0,101,01010001,10,1 invalid: asff,fad,01001f,0a Κλπ κλπ δηλαδη θελω το input του χρηστη να ειναι MONO 0 ή 1 αλλιως να τον παραπεμπω να το εισαγει σωστα..
bokarinho Δημοσ. 22 Μαρτίου 2008 Δημοσ. 22 Μαρτίου 2008 > #include <stdio.h> #include <string.h> /* Returns True = 1 if the input string contains only 0 and 1, False = 0 if occurs the opposite. */ int CheckForValidString(const char *pszStr, char *delimStr) { int Length = strspn(pszStr, delimStr); if(Length != strlen(pszStr)) return 0; return 1; } int main(void) { int nRet = 0, nRet1 = 0; nRet = CheckForValidString("000000100000", "01"); nRet1 = CheckForValidString("01010101a0", "01"); printf("%s\n", nRet == 0 ? "Found error.\n" : "Correct String,\n"); printf("%s\n", nRet1 == 0 ? "Found error.\n" : "Correct String,\n"); getchar(); } ---------------------------------- Αποτελέσματα: Correct String, Found error. ----------------------------------- Αυτό πως σου φαίνεται; Δες το manual της strspn και θα καταλάβεις τι έχω κάνει. ** Βάλε και το κόμμα μέσα στο "01" - > "01," ...
parsifal Δημοσ. 22 Μαρτίου 2008 Δημοσ. 22 Μαρτίου 2008 OK, όταν έγραφες για 0 ή 1 μόνο κατάλαβα ότι μιλούσαμε για input του ενός χαρακτήρα μόνο, γι' αυτό και η παρεξήγηση. Άρα, εσύ θέλεις έναν τρόπο να ανιχνεύεις αν ο αριθμός που δίνει ο χρήστης είναι αριθμός που ανήκει στο δυαδικό σύστημα αρίθμησης. Σωστά;
koumos Δημοσ. 22 Μαρτίου 2008 Μέλος Δημοσ. 22 Μαρτίου 2008 ναι μπορεις να το πεις κ ετσι..Στην ουσια δουλευω πανω σε ενα αυτοματο κ φτιαχνω το προγραμμα που θα του εισαγεις ενα στρινγκ 0 ή 1 και αυτο αναλογως θα το αναγνωριζει ή οχι.. το θεμα ειναι οτι θελω οταν ο χρηστης παει να εισαγει μπουρδες να μην τον αφηνω!
koumos Δημοσ. 22 Μαρτίου 2008 Μέλος Δημοσ. 22 Μαρτίου 2008 thnx bokarinho θα το κοιταξω να προσπαθησω να καταλαβω τι εκανες και θα σου πω!!
parsifal Δημοσ. 22 Μαρτίου 2008 Δημοσ. 22 Μαρτίου 2008 Ας κάνω κι εγώ μία προσπάθεια. Έστω ότι η είσοδος του χρήστη έχει διαβασθεί στον πίνακα χαρακτήρων Input: > char *pIndex = Input; while(*pIndex == '0' || *pIndex == '1') pIndex++; if(*pIndex) { printf("Invalid input!\n"); return 1; } printf("Valid input\n"); return 0;
koumos Δημοσ. 22 Μαρτίου 2008 Μέλος Δημοσ. 22 Μαρτίου 2008 οκ παιδια σας ευχαριστω και τους 2! θα κοιταξω αναλυτικα τις προτασεις σας και θα επιστρεψω μολις εχω κατι...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.