Προς το περιεχόμενο

Απλη ερωτησουλα σε C


koumos

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα! θα ηθελα να σας ρωτησω πως μπορω να κανω ελεγχο σε ενα στρινγκ που θα γινεται εισαγωγη απο το χρηστη, αν αυτο ειναι συγκεκριμενα 0 ή 1?

δηλαδη τι εννοω: θελω ο χρηστης να εισαγει στρινγκ κ αν δεν ειναι ολο το στρινγκ 0 ή 1 να του πεταει μυνημα λαθους κ να τον παραπεμπει να εισαγει σωστο στρινγκ..

πρεπει να ειναι η εντολη if (??)...

Οποιος ξερει ας βοηθησει γιατι ψιλοεπειγει...

Δημοσ.

Αν οι μόνες αποδεκτές επιλογές σε αυτό το στάδιο είναι ο αριθμός 0 ή 1, γιατί να διαβάζεις την είσοδο του χρήστη ως string και όχι ως int... ;

Δημοσ.

μα και ως στρινγκ να διαβαζω την εισοδο παλι θα θελω μονο 0 ή 1..δηλαδη οποιο αλλο ακεραιο και να μου δωσει εγω πρεπει να ελεγξω ενα ενα το καθε ψηφιο για το αν ειναι 0 ή 1..μηπως ξερεις αυτο πως γινεται??

Δημοσ.
πρεπει να ελεγξω ενα ενα το καθε ψηφιο για το αν ειναι 0 ή 1..

 

Μάλλον δεν κατάλαβα καλά τί ζητάς, αν και με αυτό που έγραψες τώρα έχω μία υποψία περί τίνος πρόκειται. Δώσε όμως μερικά παραδείγματα έγκυρου και invalid input, για να σιγουρευτώ...

Δημοσ.

ok!

εγκυρα input θεωρουνται: 0010101010,001,0,101,01010001,10,1

invalid: asff,fad,01001f,0a Κλπ κλπ

δηλαδη θελω το input του χρηστη να ειναι MONO 0 ή 1 αλλιως να τον παραπεμπω να το εισαγει σωστα..

Δημοσ.

>
#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," ...

Δημοσ.

OK, όταν έγραφες για 0 ή 1 μόνο κατάλαβα ότι μιλούσαμε για input του ενός χαρακτήρα μόνο, γι' αυτό και η παρεξήγηση. Άρα, εσύ θέλεις έναν τρόπο να ανιχνεύεις αν ο αριθμός που δίνει ο χρήστης είναι αριθμός που ανήκει στο δυαδικό σύστημα αρίθμησης. Σωστά;

Δημοσ.

ναι μπορεις να το πεις κ ετσι..Στην ουσια δουλευω πανω σε ενα αυτοματο κ φτιαχνω το προγραμμα που θα του εισαγεις ενα στρινγκ 0 ή 1 και αυτο αναλογως θα το αναγνωριζει ή οχι.. το θεμα ειναι οτι θελω οταν ο χρηστης παει να εισαγει μπουρδες να μην τον αφηνω!

Δημοσ.

thnx bokarinho θα το κοιταξω να προσπαθησω να καταλαβω τι εκανες και θα σου πω!!

Δημοσ.

Ας κάνω κι εγώ μία προσπάθεια.

Έστω ότι η είσοδος του χρήστη έχει διαβασθεί στον πίνακα χαρακτήρων Input:

 

>
char *pIndex = Input;

while(*pIndex == '0' || *pIndex == '1') pIndex++;

if(*pIndex) {
	printf("Invalid input!\n");
	return 1;
}

printf("Valid input\n");
return 0;

Δημοσ.

οκ παιδια σας ευχαριστω και τους 2! θα κοιταξω αναλυτικα τις προτασεις σας και θα επιστρεψω μολις εχω κατι...

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...