teo64x Δημοσ. 7 Ιουνίου 2006 Δημοσ. 7 Ιουνίου 2006 Λοιπόν, το πρόβλημα είναι ότι θέλω να επεξεργαστώ τον κάθε χαρακτήρα ενός αλφαριθμητικού. Για παράδειγμα, θέλω μια συνάρτηση που να μετατρέπει ένα αριθμητικό σε lowercase, οπότε γίνεται: >char lowercase(char *str) { int i; for(i=0;str[i];i++) str[i]=tolower(str[i]); return *str; } Καλώντας τη συνάρτηση, για παράδειγμα > #include <iostream> using namespace std; int main() { cout << lowercase("ThIs StRINg"); for(;; // Για να μείνει ανοιχτό το παράθυρο. return 0; } το πρόγραμμα κλείνει με σφάλμα όταν φτάνει στο βρόχο for() της lowercase(), παρόλο που το compiling γίνεται χωρίς σφάλματα. Πώς πρέπει να γράψω μια συνάρτηση όπως είναι η lowercase() για να λειτουργεί; :oops:
bird Δημοσ. 7 Ιουνίου 2006 Δημοσ. 7 Ιουνίου 2006 To string "ThIs StRINg" είναι constant string και δεν μπορεί να αλλάξει... Αν θέλεις κάνε κάτι τέτοιο: > #include <iostream> using namespace std; int main() { char buf[128] = "ThIs StRINg"; cout << lowercase(buf); for(;; // Για να μείνει ανοιχτό το παράθυρο. return 0; } ή κάπως έτσι... :-D
teo64x Δημοσ. 7 Ιουνίου 2006 Μέλος Δημοσ. 7 Ιουνίου 2006 Ok, δούλεψε. Eυχαριστώ πολύ, bird. For the record, έπρεπε να αλλάξει και η lowercase() σε >char *lowercase(char *str) { int i; for(i=0;str[i];i++) str[i]=tolower(str[i]); return str; } για να επιστρέψει όλο το αλφαριθμητικό.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.