themis Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 > vathmos[0]=buff[strlen(buff)-3]; vathmos[1]=buff[strlen(buff)-2]; vathmosp=atoi(vathmos); printf("vathmosprosthesi!!!:%i\n",vathmosp); sinolo += vathmosp; nomizo oti i atoi() mporei na sintaxthei opos sto paradeigma apo pano..an oxi...tote pos ti xrisimopoio gia enan aray 2 theseon opou ean o arithmos ine dipsifios p.x. 12 tote ine: >vathmos[0]=1 vathmos[1]=2 ke ean ine monopsifios p.x. 8 ine: >vathmos[0]=" " vathmos[1]=8 pos tha ginei meso tis atoi na ginete apothikefsi se mia metavliti tou arithmou pou prokiptei apo tis 2 theseis vathmos[0] kai vathmos[1]? please apantiste asap.!!!
cbmgr Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 RTFM βρε themi! Γοογλαρεις και παρε το πρώτο link πoυ βγάζει. http://www.cplusplus.com/reference/clibrary/cstdlib/atoi.html Ερώτηση: γιατί όχι σε c++ ???
themis Δημοσ. 4 Ιουνίου 2007 Μέλος Δημοσ. 4 Ιουνίου 2007 to exo vrei afto...psaxno tin lisi gia array...dioti profanos den mporo na grapso atoi(vathmos[]);
Keydo Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 profanos den mporo na grapso atoi(vathmos[]); Δεν το έτρεξα, αλλά γιατί να μην μπορείς να το γράψεις αυτό?
themis Δημοσ. 4 Ιουνίου 2007 Μέλος Δημοσ. 4 Ιουνίου 2007 den ksero giati..makari an douleve..ala distixos den doulevei etsi...
themis Δημοσ. 4 Ιουνίου 2007 Μέλος Δημοσ. 4 Ιουνίου 2007 emena den doulevei m tipota...mou vgazei kati asxeta..mipos prepi na kano kapio flush i kati tetio? p.s. xrisimopoio pipes
Keydo Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 emena den doulevei m tipota...mou vgazei kati asxeta..mipos prepi na kano kapio flush i kati tetio? p.s. xrisimopoio pipes [stupid]Την stdlib.h την έβαλες?[/stupid]
bilco Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 Ρε παλικαρ ήντα κάνεις; Είναι ο πίνακας vathmos char ή είναι τίποτα int και σου βγάζει άσχετα; (γιατί έτσι όπως τον χρησιμοποιείς στα παραδείγματα επάνω για int μου φαινεται)
bokarinho Δημοσ. 4 Ιουνίου 2007 Δημοσ. 4 Ιουνίου 2007 Δεν έχω καταλάβει τι ακριβώς ζητάς,βέβαια σου παραθέτω κώδικα που κάνει το εξής: Αν του δώσεις ένα αλφαριθμητικό το οποίο περιέχει αριθμούς τότε μετατρέπει από τους κ πριν το τέλος χαρακτήρες σε αριθμούς και βρίσκει το άθροισμα τους. Να ξέρεις ότι η ατοι χειρίζεται αλφαριθμητικά και όχι χαρακτήρες, δεν καταλαβαίνω τι ακριβώς θέλεις να κάνεις, γράφε καθαρά γιατί δεν μπορούμε να μυρίζουμε τα νυχια μας... > #include <stdio.h> #include <stdlib.h> #include <string.h> //Function Prototypes int converStringToNumber(char *str, int k, int *sum); int main(int argc, char *argv[]) { int sum = 0; int i = 0; char *string = "129823"; i = converStringToNumber(string,5,&sum); if(!i) printf("Sum of values is %d\n",sum); system("PAUSE"); return 0; } int converStringToNumber(char *str, int k, int *sum) { if(str) { int i = 0; int l = 0; char *value = (char*)calloc(k,sizeof(char)); if(value) { for(i = k; i > 0; i--) { char *p = &str[strlen(str) - i]; value[l] = p[0]; *sum += atoi(&value[l]); l++; } if(l == k) return 0; else { free(value); return -1; } } else return -2; } else return -3; } Αυτό είναι κάτι πρόχειρο που γράφτηκε σε 5 λεπτά οπότε αν διευκρινίσεις τι ζητάς θα γίνει κάτι!!!
Directx Δημοσ. 5 Ιουνίου 2007 Δημοσ. 5 Ιουνίου 2007 > vathmos[0]=buff[strlen(buff)-3]; vathmos[1]=buff[strlen(buff)-2]; vathmosp=atoi(vathmos); printf("vathmosprosthesi!!!:%i\n",vathmosp); sinolo += vathmosp; nomizo oti i atoi() mporei na sintaxthei opos sto paradeigma apo pano..an oxi...tote pos ti xrisimopoio gia enan aray 2 theseon opou ean o arithmos ine dipsifios p.x. 12 tote ine: >vathmos[0]=1 vathmos[1]=2 ke ean ine monopsifios p.x. 8 ine: >vathmos[0]=" " vathmos[1]=8 pos tha ginei meso tis atoi na ginete apothikefsi se mia metavliti tou arithmou pou prokiptei apo tis 2 theseis vathmos[0] kai vathmos[1]? please apantiste asap.!!! Όταν λες του αριθμού που προκύπτει από τις δυο θέσεις υποθέτω πως εννοείς ότι εάν έχουμε το κείμενο (char) «12» θα πρέπει να λάβουμε ως αριθμό (int) το «3». Ένας σχετικά εύκολος τρόπος για να γίνει αυτό με την βοήθεια της atoi είναι να αποθηκεύσουμε σε ένα char (szNumber) κάθε αριθμητικό χαρακτήρα του προς μετατροπή κειμένου (pszString) και ύστερα μετατρέποντας το σε αριθμό (atoi) να το προσθέσουμε στο συνολικό αποτέλεσμα της μεταβλητής μας (πχ. στην nNumber): > /*---------------------------------------------------------------------------*/ #include <stdio.h> #include <string.h> #include <stdlib.h> #ifdef __BORLANDC__ #pragma hdrstop #endif /*---------------------------------------------------------------------------*/ int _StrNumberSum(char *pszString); /*---------------------------------------------------------------------------*/ #ifdef __BORLANDC__ #pragma argsused #endif int main(int argc, char* argv[]) { char szNumber[11]; int nNumber, nDummy; printf("Enter number (up to 10 digits):"); scanf("%10s",szNumber); nNumber =_StrNumberSum(szNumber); printf("Sum:%d\n",nNumber); return 0; } /*---------------------------------------------------------------------------*/ int _StrNumberSum(char *pszString) { char szNumber[1]; int nNumber = 0, nCharIdx; for(nCharIdx=0;nCharIdx<strlen(pszString);nCharIdx++) { szNumber[0] = pszString[nCharIdx]; nNumber += atoi(szNumber); } return nNumber; } Η ρουτίνα _StrNumberSum αγνοεί το αρνητικό πρόσημο (δεν είναι δύσκολο να το λάβει υπόψη της πάντως). Επίσης εάν η atoi εντοπίσει μη αριθμητικό χαρακτήρα (πχ. «1 2» αντί για «12») επιστρέφει 0 και δεν τον λογαριάζει συνεπώς στο αποτέλεσμα. Υ.Γ. Ο κώδικας αναπτύχθηκε σε (Borland) CodeGear C/C++ Builder 6.0
themis Δημοσ. 5 Ιουνίου 2007 Μέλος Δημοσ. 5 Ιουνίου 2007 ευχαριστώ πάρα πολύ για τις απαντήσεις...τελικά το έλυσα το πρόβλημα...με τη βοηθειά σας παντα... ήθελα να βρίσκω το μέσο όρο σε κάποια δεδομένα αλλά τα δεδομένα μεταφέρονταν μέσω Pipes μεταξύ των διεργασιών...εννοείται πως ήταν για εργασία στο πανεπιστήμιο. ευχαριστώ και πάλι cheers!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.