Προς το περιεχόμενο

Ascii (integer) --> Char στην C ..! πώς.?


B@GOS.GR

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σας ....

 

Σας ζητώ την βοήθεια σας Για να τελείωσω μια άσκηση ..!

 

Πώς Μπορώ να μετατρέψω στη C εναν Αριθμό Ascii (πχ AsciiINT = 65;) να μετετραπει σε Χαρακτήρα .. ( Char = A;)

 

Έχω καταφέρει να κανω το ανάποδο αλλά εδώ καπου κολάω :rolleyes:

 

Σας Ευχαριστώ....

Δημοσ.

Συνέχισα όπως είπαμε και θέλησα να το Ηλοποισω σε ενα Array το αποίο να κρατά την Αλφαβήτα (ελληνική)

 

Δηλαδή:

 

>
#define FIRST_CHAR 128

int main()
{
 char Achar[25]={32};

for(i=0; i<25; i++)
 {
    Achar[i]=FIRST_CHAR+i;
  }
 
 printf("%s\n",Achar);

ωστόσο η τηπωση μου βγάζει κατι Άσχετο ..!

 

ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩα

 

όπου στο "α" θα έπρεπε να τυπώνει Κενο Space_Char = 32

:fear:

 

τι λάθος κάνω ....:rolleyes:

Δημοσ.

ναι, φυσιολογικό

 

αν δεις το charset που χρησιμοποιει το DOS θα καταλαβεις, το 'α' ακολουθεί το 'Ω'

 

κοιτα να δεις στον compiler σου αν σου δίνει τη δυνατοτητα να κανεις compile με καποιο 'νορμαλ' charset, unicode ας πουμε ή το greek-κατι....

Δημοσ.

βασικα (δε ξερω πως γινετε και αν) πρεπει να αλλαξει το charset της κονσολας. Το ζητημα δεν ειναι οι τιμες που εχουν οι χαρακτηρες, αυτες δεν αλλαζουν. Σημασια εχει το πως τους απεικονίζουν τα εκαστοτε προγραμματα (πχ κονσολα ή notepad για αρχεια)

Δημοσ.
ναι .. αλλά εγώ δεν συνέχισα μετα το 'Ω'

 

Δηλαδί:

 

απο Array

 

Achar[0] = 128 /* Α */

Achar[24] = 151 /* Ω */

Αλλα Achar[25] = 32 /* Space */

 

εκτώς αν δεν κατάλαβα ακριβώς τΗ μου είπες :cry:

 

και βεβαια συνεχισες

 

το

> for(i=0; i<25; i++) 

σημαινει "κανε κατι 25 φορες"

αρα αλλαζεις ΟΛΑ τα στοιχεια του 25θεσιου array σου, σωστα?

Δημοσ.

α, και αυτο

Αλλα Achar[25] = 32 /* Space */

 

ΔΕΝ ισχυει. Αφου όρισεςτο array ως

 

>char Achar[25]={32};

 

μπορεις να ξέρεις μέχρι και το Achar[24] τι τιμή εχει. Το Achar[25] ειανι out of bounds και ειναι undefined ;)....

Δημοσ.

Έχεις δηλώσει πίνακα 25 θέσεων. Η αρίθμηση των θέσεων είναι από 0 έως 24. Στη θέση A[23] βρίσκεται ο κώδικας του Ω και στην τελευταία θέση A[24] το 128 + 24, δηλαδή ο κώδικας του α. Ο χαρακτήρας του Space από πού θα μπορούσε να προκύψει... ;

Δημοσ.

ώπα ναι Σωστα .. το παρέληψα αυτο ....

 

αλλα εστο και έτσι:

 

>

[color=#000000][color=#FF8000]#define FIRST_CHAR 128

[/color][color=#0000BB]int main[/color][color=#007700]()
{
 [/color][color=#0000BB]char Achar[/color][color=#007700][[/color][color=#0000BB]26[/color][color=#007700]][/color][color=#007700];

for([/color][color=#0000BB]i[/color][color=#007700]=[/color][color=#0000BB]0[/color][color=#007700]; [/color][color=#0000BB]i[/color][color=#007700]<[/color][color=#0000BB]25[/color][color=#007700]; [/color][color=#0000BB]i[/color][color=#007700]++)
 {
    [/color][color=#0000BB]Achar[/color][color=#007700][[/color][color=#0000BB]i[/color][color=#007700]]=[/color][color=#0000BB]FIRST_CHAR[/color][color=#007700]+[/color][color=#0000BB]i[/color][color=#007700];
  }
Achar[25]=32;  
 [/color][color=#0000BB]printf[/color][color=#007700]([/color][color=#DD0000]"%s\n"[/color][color=#007700],[/color][color=#0000BB]Achar[/color][color=#007700]);  [/color][/color]

 

Πάλι το ίδιο μου Γηνετε :cry:

Δημοσ.
ώπα ναι Σωστα .. το παρέληψα αυτο ....

 

αλλα εστο και έτσι:

 

>

[color=#000000][color=#ff8000]#define FIRST_CHAR 128

[/color][color=#0000bb]int main[/color][color=#007700]()
{
 [/color][color=#0000bb]char Achar[/color][color=#007700][[/color][color=#0000bb]26[/color][color=#007700]][/color][color=#007700];

for([/color][color=#0000bb]i[/color][color=#007700]=[/color][color=#0000bb]0[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]<[/color][color=#0000bb]25[/color][color=#007700]; [/color][color=#0000bb]i[/color][color=#007700]++)
 {
    [/color][color=#0000bb]Achar[/color][color=#007700][[/color][color=#0000bb]i[/color][color=#007700]]=[/color][color=#0000bb]FIRST_CHAR[/color][color=#007700]+[/color][color=#0000bb]i[/color][color=#007700];
  }
Achar[25]=32;  
 [/color][color=#0000bb]printf[/color][color=#007700]([/color][color=#dd0000]"%s\n"[/color][color=#007700],[/color][color=#0000bb]Achar[/color][color=#007700]);  [/color][/color]

Πάλι το ίδιο μου Γηνετε :cry:

 

 

ρε φιλε, ποσα γραμματα εχει η ελληνική αλφαβήτα?

24 σωστα?

άρα πόσους χαρακτήρες πρέπει να αλλαξεις?

24

αρα γιατι

> for(i=0; i<25; i++)

επιμενεις να αλλαζεις 25 χαρακτηρες?

οταν κανεις

αυτο

>[color=#000000][color=#007700] Achar[25]=32; [/color][/color]

αλλαζεις τον 26 χαρακτηρα και πραγματι τον κανεις space

 

αλλα πιο πριν εχεις αλλαξεις και τον 25 και τον εχεις κανει 'α'

 

η λυση σου ειναι

> for(i=0; i<[b]24[/b]; i++)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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