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

απορια με atoi σε C++


mariosk89

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

Δημοσ.

έχω ένα char * της μορφής "2,5,7,8,0," και θέλω μέσω της atoi να πάρω αυτά τα νούμερα και να τα βάλω σε ένα πίνακα με int. πως μπορώ να το κάνω αυτό? θέλει ειδική μεταχείρηση σε αυτή την περίπτωση η atoi?

Δημοσ.

Eίναι λίγο πιο πολύπλοκο νομίζω.

Αν το δώσεις ολόκληρο θα έχεις εναν int της μορφής 25780. Ξεχωριστά κάθε χαρακτήρα δεν μπορείς να τον βάλεις σαν όρισμα στην atoi. Η atoi θέλει σαν όρισμα εναν const char*.

Δες αυτό θα σε διαφωτίσει σε αυτό που θέλεις να κάνεις αλλά χωρίς τη βοήθεια του atoi.

 

http://bytes.com/topic/c/answers/60431-dereferencing-char-array-int-array

Δημοσ.

Αν τα strings είναι προβλέψιμα (έχουν πάντα την ίδια μορφή όπως αυτή που έδωσες στο opening post), μπορείς και με την sscanf πολύ εύκολα!

Δημοσ.

δεν ξέρω αν κάτι τέτοιο σε βολεύει

 

>
#include <stdio.h>

int main(){
   char *values="23697";
   
   int pin[5];//5=length("23697")
   for (int i=0;i<5;i++) pin[i]=(int)(values[i]-'0');
   for (int i=0;i<5;i++) printf(" %d ",pin[i]);
   getchar();
   return 0;
}

 

Υ.Γ. έλεγχοι δεν γίνονται για τα ψηφία

προσάρμοσε το στις ανάγκες σου

Δημοσ.

Μπορείς να δουλέψεις και με την strtok() που βρίσκεται

στο string.h

 

Είναι μια συνάρτηση για να χωρίζει ένα αρχικό string σε

κομμάτια με βάση μια λίστα από separators. Θα σου

επιστρέφει κάθε φορά την πληροφορία που θες (τους

αριθμούς στην περίπτωση σου) για να την κάνεις ό,τι θες

(να τους περάσεις από την atoi).

 

Δες εδώ ένα παράδειγμα για το πως δουλέυει

http://www.opengroup.org/onlinepubs/000095399/functions/strtok.html

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

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

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