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

Προβληματάκι με δείκτες σε C++ (κλαψ)


teo64x

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

Δημοσ.

Λοιπόν, το πρόβλημα είναι ότι θέλω να επεξεργαστώ τον κάθε χαρακτήρα ενός αλφαριθμητικού. Για παράδειγμα, θέλω μια συνάρτηση που να μετατρέπει ένα αριθμητικό σε 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:

Δημοσ.

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 :-D

Δημοσ.

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;
}

για να επιστρέψει όλο το αλφαριθμητικό.

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

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

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