Jump to content



προγραμμα σε dev c++


απιστευτος

Recommended Posts

θελω να γραψω ενα προγραμμα που να εισαγει μικρα γραμματα(αγγλ) και θα τα μετατρεπεI σε κεφαλαια θα τα εμφανιζει στην οθονη και θα γραφει τον αντιστοιχο ASCll κωδικο σε καποιο αριθμητικο συστημα...μηπως υπαρχει καμια ιδεα?ξερω οτι αυτο γινεται με τη συναρτηση touper(a) αλλα στη πραξη δεν ειναι τοσο ευκολα τελικα.αυτο με την ASCll δε το εχω πολυπιασει!!!ειμαι αρχαριος ακομα εννοειται..........

Link to comment
Share on other sites

μετατρεπεις τα γραματα στους αντιστοιχους αριθμους τους (υπαρχει συναρτηση που το κανει δε θυμαμαι ονομα τωρα) και μετα προσθετεις σε καθε ενα γραμμα το 32 αν θυμαμαι καλα διοτι στον ασκιι τα μικρα με τα κεφαλαια απεχουν κατα 32. ε, μετα τα εκτυπωνεις παλι αφου φυσικα αποθυκευσεις τα νεα κεφαλαια πια γραμματα

Link to comment
Share on other sites

τελικα ομως ηταν μονο για την μετατροπη των μικρων σε κεφ.με το ascii δε βρηκα λυση.η συναρτηση που θα χρησιμοποιησω ειναι η toascii.ο κωδικας ειναι καπως ετσι:

#include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

main()

{

char c,

ch;

while ((c = getchar()) ) {

if (c >= 'a' && c <= 'z')

ch = toupper©;

else

ch = c;

putchar(ch); }

system("pause");

}

εχω δοκιμασει πολλυς συνδυασμους με την toascii αλλα δε μου βγαινει.μηπως ξερετε που πρεπει να μπει αυτη???

Link to comment
Share on other sites

ειμαι πολυ κοντα αλλα κατι στραβωνει ρε γαμωτο.αυτο που λεει ειναι για c++ κωδικα και οχι για c.εγω σε c κωδικα γραφω.το cin >> word; τι ειναι ακριβως.αυτο μου χαλαει τη δουλεια.ο κωδικας θα ναι καπως ετσι περιπou:

char word[32];

int x = 0;

cin >> word;

while (word[x] != '\0')

{

cout << int(word[x]);

x++;

}

cout << "\n";

return 0;

}

τι λες?

το cout ξερω ειναι το printf.to cin στην c ποιο ειναι??

Link to comment
Share on other sites

τελικα εγραψα αυτο:

#include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

main()

{

char c,ch,word[32];

int x ;

x=0;

while ((c = getchar())) {

if (c >= 'a' && c <= 'z')

ch = toupper©;

else

ch = c;

scanf("%c",&x);

while ((word[x]==("0"))) {

printf((word[x])) ;

x++;

printf("%c",x);

putchar(ch);

}

}

system("pause");

}

αλλα τωρα οταν βαζω γραμμα δε κανει τιποτα!τι φταει ρε γαμωτη μου????

Link to comment
Share on other sites

Η scanf δεν καταλαβαίνω γιατί υπάρχει, αφού τους χαρακτήρες τους τσιμπάς με την getchar.

Μου φαίνεται ότι το έγραψες βιαστικά το πρόγραμμα. Κάνε ένα flow control graph στο χαρτί με τον πλήρη αλγόριθμο και μετά τον μεταφέρεις σε κώδικα. Έτσι που πας να τον γράψεις απ' ευθείας θα κάνεις λάθη ειδικά αν είναι νέος.

Link to comment
Share on other sites

ναι οντως.καλα εγω δε περιμενα τιποτα ετοιμο να μου δωσουν να το αντιγραψω.εχω μπει στην λογικη.αυτο που μονο μου σπαει τα νευρα ειναι το ascii διοτι πρωτη φορα το ακουσα σε αυτην την ασκηση. καθε αρχη και δυσκολη...

Link to comment
Share on other sites

τελικα εγραψα αυτο:

#include <ctype.h>

#include <stdio.h>

#include <stdlib.h>

main()

{

char c,ch,word[32];

int x ;

x=0;

while ((c = getchar())) {

if (c >= 'a' && c <= 'z')

ch = toupper©;

else

ch = c;

x=(int)c;

{

putchar(ch);

printf("%d\n",x);

printf("\n");

}

}

system("pause");

}

και δουλευει.μονο που στο τελος εκτυπωνει κ ενα 10!πχ πληκτρολογω b και βγαζει:

b

Β66

10

επισης οταν παταω enter μου βγαζει 10.

ti μπορει να ναι αυτο?

Link to comment
Share on other sites

10 είναι το enter. Αν δε θέλεις να φαίνεται τότε κάνε έναν έξτρα έλεγχο μετά την getchar να είναι αλφαριθμητικό μόνο.

Πάρε το πρόγραμμα κάπως πιο optimized.


#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
main(){
char c,ch,word[32];
int x;
while ((c = getchar())) {
if (c >= 'a' && c <= 'z')
ch = toupper(c);
else
ch = c;

x=(int)c;
printf("%c-%d\n",ch,x);
}
}

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.