renouko Δημοσ. 28 Νοεμβρίου 2009 Δημοσ. 28 Νοεμβρίου 2009 καλησπερα θα ηθελα να ρωτησω σχετικα με την γλωσσα προγραμματισμου C οταν το προγραμμα διαβαζει μια συμβολοσειρα πωσ μπορω να την βαλω σε ενα πινακα ετσι ωστε μετα να μπορω να αλλαξω τα γραμματα που εχουν αποθηκευτει σε αυτον τον πινακα εκτοσ του κενου π.χ εχω την προταση "ti kaneis' και θελω να εμφανιστει η προταση"ug lbofgt"
virxen75 Δημοσ. 28 Νοεμβρίου 2009 Δημοσ. 28 Νοεμβρίου 2009 κάτι τέτοιο θα σε βοηθήσει πιστεύω > #include <stdio.h> #include <string.h> int main(){ char protasi[31];//μέχρι 30 γράμματα char ab[27]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";//η γραμματοσειρά που χρησιμοποιούμε char newab[27]="WXEFGHYZATUBKLJQRMNOPCDISV";//η νέα γραμματοσειρά αντικατάστασης π.χ. Α->W ,I->A κ.τ.λ. printf("\ndose protasi mexri 30 grammata(KEFALAIA MONO):"); gets(protasi);//αν δώσω ABCD ABCF σαν πρόταση,δεν καλύπτω όλες τις θέσεις του πίνακα int mikos=strlen(protasi);//πόσοι χαρακτήρες χρησιμοποιήθηκαν συνολικά από τον χρήστη για την πρόταση int i=0,j=0; for (i=0;i<mikos;i++)//για κάθε γράμμα της πρότασης for (j=0;j<26;j++){//για κάθε γράμμα του αλφαβήτου if (protasi[i]==ab[j]){//αν το γράμμα στην θέση i είναι το ίδιο με το γράμμα στην θέση j του αλφαβήτου τότε protasi[i]=newab[j];//αντικατέστησε το γράμμα στην θέση i με το γράμμα j του νέου αλφάβητου break;//τέλος με το αλφάβητο πάμε στο επόμενο γράμμα της πρότασης } } printf("\n h protasi egine: %s",protasi); getchar(); getchar(); return 0; }
renouko Δημοσ. 28 Νοεμβρίου 2009 Μέλος Δημοσ. 28 Νοεμβρίου 2009 :) με βοηθησε παρα πολυ... απλα αντιμετωπιζω ενα προβλημα που αντιμετωπιζα παλι στην αρχη.. αν βαλω την gets() κατω απο την εκτυπωση "δωσε την προταση" οταν το εκτελω το προγραμμα δν μπορω να γραψω το κειμενο μου ενω αν την αντικαταστησω την get() με την scanf("%s",protasi) μπορω να γραψω το κειμενο μου..
virxen75 Δημοσ. 28 Νοεμβρίου 2009 Δημοσ. 28 Νοεμβρίου 2009 1) δοκίμασες τον κώδικα μου αυτούσιο και έκανε αυτό που λες? 2) τι compiler χρησιμοποιείς? 3) το scanf(..... διαβάζει μέχρι να δώσεις κενό ή enter οπότε σίγουρα δεν σου κάνει για πρόταση 4)στείλε τον προβληματικό κώδικα που λες με την gets
renouko Δημοσ. 28 Νοεμβρίου 2009 Μέλος Δημοσ. 28 Νοεμβρίου 2009 οχι δεν χρησιμοποιησα των δικο σου κωδικα.... χρησιμοποιω το dev-C++ τωρα θα τον στειλω αυτα που εχω κανει ---------- Το μήνυμα προστέθηκε στις 17:44 ---------- #include <stdio.h> #include <string.h> int main() { char str[128]; char string [54]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; int a,b,l; printf("Dwse to ari8mitiko kleidi:\n"); scanf("%d",&a); while (a!=1 && a!=-1) { printf("dwse neo arithmitiko kleidi(1 h -1):\n"); scanf("%d",&a); } printf("Dwse thn kateu8unsh:\n"); scanf("%d",&; printf("Dwse to mumhma :\n"); gets(str); system("PAUSE"); return EXIT_SUCCESS; } ---------- Το μήνυμα προστέθηκε στις 17:46 ---------- εχει και αλλα ο κωδικασ απλα σε αυτο το σημειο μ παρουσιαζει το προβλημα με την gets()
NeuroN Δημοσ. 28 Νοεμβρίου 2009 Δημοσ. 28 Νοεμβρίου 2009 :)αν βαλω την gets() κατω απο την εκτυπωση "δωσε την προταση" οταν το εκτελω το προγραμμα δν μπορω να γραψω το κειμενο μου εννοείς οτι το πρόγραμμα σου δεν σταματέι για να παρει είσοδο? αν είναι έτσι τοτε το πρόβλημα είναι οτι υπάρχει ήδη κάτι στο ρεύμα εισόδου αυτό γίνεται αν έχει προηγηθεί άλλη scanf τότε το enter μένει στο ρευμα εισόδου πριν απο την gets βάλε άλλη μια gets και εισαι κομπλε πχ. > gets(s); gets(s);
renouko Δημοσ. 28 Νοεμβρίου 2009 Μέλος Δημοσ. 28 Νοεμβρίου 2009 ναι δουλεψε σε ευχαριστω παρα πολυ............................
virxen75 Δημοσ. 28 Νοεμβρίου 2009 Δημοσ. 28 Νοεμβρίου 2009 > ...... printf("\nDwse thn kateu8unsh:"); scanf("%d",&; [color="Red"]fflush(stdin);[/color] printf("\nDwse to mumhma :"); gets(str); .......
renouko Δημοσ. 28 Νοεμβρίου 2009 Μέλος Δημοσ. 28 Νοεμβρίου 2009 ...... printf("\nDwse thn kateu8unsh:"); scanf("%d",&; [color=Red]fflush(stdin);[/color] printf("\nDwse to mumhma :"); gets(str); ....... thanks
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.