blackeye Δημοσ. 12 Οκτωβρίου 2003 Δημοσ. 12 Οκτωβρίου 2003 loipon,exw enan pinaka S me char stoixeia,plithos N, swsta?pairnw ena minima apo to pliktrologio me tin getline(cin,message,'\n');ton kanw pinaka char me tin strcpy(S1,message.c_str()) mexri edw kala.... for(int i=0;i<message.length();i++) {for(int w=0;w<N;w++) { if(S1==S[w]) {tote kane kati....... to provlima einai oti an o pinakas S exei to ' ',to keno diladi,kai esy dwseis minima pou perixei to spaze,' ', i if(S1==S[w]) den ginetai true enw kanonika tha eprepe.......giati?thelw lysi plz Simeiwsi:to exw dokimisei kai me static_cast kai mono me string alla tipota,opote dinei to space den to vgazei true
GrMikeD Δημοσ. 12 Οκτωβρίου 2003 Δημοσ. 12 Οκτωβρίου 2003 nai giati me auto sugrineis theseis mnimis oxi times. Xrisimopoiise tin strcmp() gia tin sugrisi
krot Δημοσ. 12 Οκτωβρίου 2003 Δημοσ. 12 Οκτωβρίου 2003 οχι GrMikeD, άλλο θέλει να κάνει ! blackeye καλό μου φαίνετε, μόνο με το space έχεις πρόβλημα ; Μήπως χαλάς το message πουθενά, π.χ. αν έβαζες αντί για message.length() το strlen(S1) (και αντί για N το strlen(S)) δεν βάζεις όλον τον κώδικα να τον δούμε ;
blackeye Δημοσ. 12 Οκτωβρίου 2003 Μέλος Δημοσ. 12 Οκτωβρίου 2003 > string message; cout<<"Dwse to minima : "; getline(cin,message,'\n'); char* messagetochar; messagetochar=new char [message.length()]; strcpy(messagetochar,message.c_str()); for(int z=0;z<message.length();z++) {for(int x=0;x<N;x++) {if(static_cast<int>(messagetochar[z]>=97)&&static_cast<int>(messagetochar[z]<=122)) //se periptwsi pou to message exei mikra anti gia kefalaia {messagetochar[z]=static_cast<char>(static_cast<int>(messagetochar[z]-32));} // if(messagetochar[z]==S[x]||S[x]==static_cast<char>(32)) { kwd<<C[x]; char* temp; int arxi; temp=new char [N]; arxi=-1; if(Q[x]<0) {for(int i=0;i<N;i++){ if(abs(Q[x])+i<N)temp[i]=C[abs(Q[x])+i]; else{arxi++; temp[N+Q[x]]=C[arxi];} } } else if(Q[x]>0&&Q[x]<N) {for(int i=0;i<N;i++) {if(Q[x]+i<N)temp[Q[x]+i]=C[i]; else{arxi++;temp[arxi]=C[i];} } } else for(int y=0;y<N;y++)temp[y]=C[y]; for(int w=0;w<N;w++) C[w]=temp[w]; delete[] temp; }//if... }//for(int x=0;x<N.... }//for(int z=0;z<message.le...... delete[] messagetochar; delete[] Q; delete[] C; delete[] S; kwd.close(); olo o kwdikas......diko sas
CodeMan Δημοσ. 21 Οκτωβρίου 2003 Δημοσ. 21 Οκτωβρίου 2003 Panikos!!Den exw katalavei ti prospa8eis na petyxeis...H getline ti kanei??? giati den grafeis apla cin << message << "\n"
spock Δημοσ. 23 Οκτωβρίου 2003 Δημοσ. 23 Οκτωβρίου 2003 Η cin συντάσσεται ως : cin >>variable; H getline(a, b, 'c') παίρνει έως b στοιχεία από το input stream, μέχρι να συναντήσει το χαρακτήρα c ή μέχρι να φτάσει το b-1 στοιχείο. Default χαρακτήρας το \n . Το declaration είναι: istream& getline(unsigned char *, int, char = '\n'); Στη δεύτερη γραμμή, έχεις βάλει ως όρισμα το cin (απαγορεύεται). Το string είναι container class, και μάλλον μπερδεύει τα πράγματα, αν δεν ξέρεις τι να την κάνεις. Για παράδειγμα, η message.c_str() method που χρησιμοποιείς, επιστρέφει pointer. Τα χρειάζεσαι πραγματικά, όλα αυτα;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.