johnykim Δημοσ. 21 Μαρτίου 2010 Δημοσ. 21 Μαρτίου 2010 Παιδιά καλησπέρα. Θα ήθελα να με βοηθήσετε λίγο σχετικά με ένα πρόγραμμα στην C.Είμαι πολύ αρχάριος(ένα μάθημα έχω κάνει στη σχολή). Θέλω να φτιάξω ένα πρόγραμμα το οποίο να διαβάζει μικρά γράμματα και να τα μετατρέπει σε κεφαλαία.Επίσης το αποτέλεσμα να εμφανίζεται σε αντίστοιχο κώδικα ASCII. Δεν έχω καταφέρει να βρω την σωστή σύνταξη με τις συναρτήσεις toupper(),για την αλλαγή των γραμμάτων και την puts() για την εμφάνιση του αποτελέσματος. > #include <stdio.h> #include <stdlib.h> #include <ctype.h> main() { char a; printf("dwse mikra grammata%c\n",a); scanf("%s",&a); toUpper(char &s); puts(&a); system("PAUSE"); return 0; }
johnykim Δημοσ. 21 Μαρτίου 2010 Μέλος Δημοσ. 21 Μαρτίου 2010 Ευχαριστώ ,δουλεύει, αλλά θα ήθελα να δίνω παραπάνω απο έναν χαρακτήρα και να μου βγάζει όσους έχω πληκτρολογήσει με κεφαλαία. Επίσης μήπως ξέρεις γιατί στην εμφάνιση του μηνύματος "dwse mikra grammata" μου βγάζει και ένα "v"στο τέλος; Δηλαδή βγάζει "dwse mikra grammatav".
bxenos Δημοσ. 21 Μαρτίου 2010 Δημοσ. 21 Μαρτίου 2010 ...Επίσης μήπως ξέρεις γιατί στην εμφάνιση του μηνύματος "dwse mikra grammata" μου βγάζει και ένα "v"στο τέλος; Δηλαδή βγάζει "dwse mikra grammatav". λάθος: printf("dwse mikra grammata%c\n",a); σωστό: printf("dwse mikra grammata\n");
johnykim Δημοσ. 21 Μαρτίου 2010 Μέλος Δημοσ. 21 Μαρτίου 2010 Ναι, το παρατήρησα κι εγώ και διορθώθηκε! Εχω φτάσει κάπου εδώ: > #include <stdio.h> #include <stdlib.h> #include <ctype.h> main() { char a; printf("dwse mikra grammata\n"); a=getchar(); //scanf("%s",&a); if (islower(a)) putchar(toupper(a)); else printf("den exeis dwsei mikro gramma...\n"); printf("\n"); system("PAUSE"); return 0; } Οποιαδήποτε βοήθεια(και αν γνωρίζετε και για τον πίνακα ASCII)δεκτή!
V.I.Smirnov Δημοσ. 21 Μαρτίου 2010 Δημοσ. 21 Μαρτίου 2010 Να μια λύση : #include <ctype.h> #include <stdio.h> int main( void ) { int i; char input[81]; printf("Enter a string:\n"); gets(input); for( i=0; input!='\0'; i++) { input=toupper(input); } printf("Result:\n%s\n",input); return 0; } Δεν χρειάζεται καν να ελέγχεις ένα ένα τα γράμματα, τα πεζά μετατρέπονται αυτόματα για όλο το string. Για τους κωδικούς ASCII κοίτα την toasscii. Και κοίτα και το help του compiler. To MSDN έχει σχεδόν τα πάντα...
johnykim Δημοσ. 24 Μαρτίου 2010 Μέλος Δημοσ. 24 Μαρτίου 2010 Παιδιά ευχαριστώ όλους για την συμμετοχή σας. Ο τελικός κώδικας που χρησιμοποιήθηκε : > #include <stdio.h> #include <stdlib.h> #include <ctype.h> main() { char a; printf("dwse mikra grammata kai '?'gia telos\n"); do { a=getchar(); putchar(toupper(a)); printf("\nXarakthras:%c ASCII Code:%d\n",a,a); //printf("\nXarakthras:%c Dekaexadikh morfh:%x\n",a,a); } while(a!='?'); printf("\n"); system("PAUSE"); return 0; }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.