Dinos_12345 Δημοσ. 15 Νοεμβρίου 2017 Δημοσ. 15 Νοεμβρίου 2017 Καλησπέρα. Θέλω να κάνω κάτι στη C και θέλω να βλέπω αν ένας χαρακτήρας είναι αγγλικού ή ελληνικού αλφάβητου τονισμένος και μη, πεζός ή κεφαλαίος. Αυτό δε δουλεύει. (ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= 'α' && ch <= 'ω') || (ch >= 'Α' && ch <= 'Ω') || (ch >= 'ά' && ch <= 'ώ') || (ch >= 'Ά' && ch <= 'Ώ') Έχετε καμία πρόταση; Δουλεύω σε Linux, συνεπώς utf-8
παπι Δημοσ. 15 Νοεμβρίου 2017 Δημοσ. 15 Νοεμβρίου 2017 δεν μπορει να χωρεσει utf8 σε ενα byte. Θα τα κανεις unicode και εκει θα παιξεις.
Ilias95 Δημοσ. 15 Νοεμβρίου 2017 Δημοσ. 15 Νοεμβρίου 2017 Το πρόβλημα είναι ότι το char στην C είναι πάντα 1 byte, στο οποίο δεν χωράνε όλοι οι utf8 χαρακτήρες. Μπορείς να χρησιμοποιήσεις κάποιο library για να χειριστείς τέτοιους χαρακτήρες.Μπορείς να χρησιμοποιήσεις και wchar_t το οποίο νομίζω είναι 4 bytes σε linux/gcc. 1
defacer Δημοσ. 15 Νοεμβρίου 2017 Δημοσ. 15 Νοεμβρίου 2017 strcmp με το κατάλληλο locale, ή κάποιο library (ICU). Επίσης, δε μπορείς να υποθέσεις πως τα γράμματα κάνουν compare σε αλφαβητική σειρά όπως τα έχεις εδώ. Και αν η είσοδος είναι από τρίτους τότε πρέπει να έχεις υπόψη ότι υπάρχουν πολλοί τρόποι να κάνεις encode πχ το Ά -- δες Unicode normalization forms (NFC, NFD). Η ICU έχει υποστήριξη για να κάνεις τα πάντα, το locale support της C runtime library δεν ξέρω. 1
kaliakman Δημοσ. 15 Νοεμβρίου 2017 Δημοσ. 15 Νοεμβρίου 2017 Αν είσαι σε Unix δες μήπως σε βολευουν reg exp για να γλιτώσεις τουλάχιστον τους ελεγχους. https://stackoverflow.com/questions/1085083/regular-expressions-in-c-examples
Dinos_12345 Δημοσ. 16 Νοεμβρίου 2017 Μέλος Δημοσ. 16 Νοεμβρίου 2017 Τελικά απλοποιήθηκε το θέμα. Φτιάχνω λεκτικό αναλυτή για μία mini έκδοση της python. Διευκρινίστηκε πως παίζουμε μόνο με ascii οπότε όλα καλά.
panomelene Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Καλησπέρα Τελείως νεος στην C και για να μην φτιαξω αλλο θεμα αφου εχει λήξει αυτο το θεμα πιστευω δεν πειράζει , Θελω στην C με while να ΜΗΝ μπαίνει μεσα στο loop με τους αριθμους 1,2,3,4 και 9 Ο μόνος τρόπος για να μην μπει ειναι while(x!=1 && x!=2 && x!=3 && x!=3 && x!=4 && x!=9) ; Η υπάρχει κάποιος αλλος τρόπος ποιο ωραίος ; γιατι με και και η δεν μου δουλεύει ! (εννοω το 1με 4 μαζι και το 9 διαφορετικα)
Aggeluska Δημοσ. 22 Νοεμβρίου 2017 Δημοσ. 22 Νοεμβρίου 2017 Καλησπέρα Τελείως νεος στην C και για να μην φτιαξω αλλο θεμα αφου εχει λήξει αυτο το θεμα πιστευω δεν πειράζει , Θελω στην C με while να ΜΗΝ μπαίνει μεσα στο loop με τους αριθμους 1,2,3,4 και 9 Ο μόνος τρόπος για να μην μπει ειναι while(x!=1 && x!=2 && x!=3 && x!=3 && x!=4 && x!=9) ; Η υπάρχει κάποιος αλλος τρόπος ποιο ωραίος ; γιατι με και και η δεν μου δουλεύει ! (εννοω το 1με 4 μαζι και το 9 διαφορετικα) κατι τετοιο ψάχνεις νομίζω: while(!(x>0 && x < 5) && x != 9)
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα