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

Μετατροπή αριθμητικού string σε int στην C


Haldol

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

Δημοσ.

Καλησπέρα. Εχθές με ρώτησε ένας φίλος μου για κάποιον τρόπο με τον οποίο θα μπορούσε να μετατρέψει ένα αριθμητικό string (λ.χ. char string[] = "256") σε ακέραιο αριθμό. Η ιδέα μου ήταν να εξετάζει έναν προς έναν τους χαρακτήρες, και βάσει του ASCII code καθενός από αυτούς να παράγει τον αριθμό.

 

Κατέληξα σε κάτι τέτοιο: (κώδικας)

 

 

>#include <string.h>

int StringToInt(char* Input)
{
int Output = 0, Factor = 1;

int Length = strlen(Input);

for (int i = Length; i > 0; i--)
{
	Output += (Input[i-1] - 48) * Factor;
	
	Factor *= 10;
}

return Output;
}

 

 

Κανένα πρόβλημα μέχρι εδώ, η συνάρτησή μου κάνει ακριβώς αυτό που θέλω. Η ερώτησή μου όμως είναι αν α) υπάρχει «δεδομένος» τρόπος για να γίνει αυτό, ή έστω πιο αποδοτικός και β) εάν προσφέρεται έτοιμη λύση από κάποιο standard header της γλώσσας.

Δημοσ.

Τελικά υπάρχει έτοιμη συνάρτηση, thanks. :)

 

Υπάρχουν και παραλλαγές αυτής... κάποιες όμως δεν υποστηρίζονται από το πρότυπο την ANSI C

(εάν θυμάμαι καλά δεν υποστηρίζεται η atof ή η itoa... δεν θυμάμαι καλά...).

 

Νομίζω ότι ένα search στο internet θα σε βοηθήσει πάρα πολύ.

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

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

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