Forum: Mikrocontroller und Digitale Elektronik ASCII to Array?


von Mark (Gast)


Lesenswert?

Hey,

ich wollte mal fragen, ob es in C ein befehl gibt mit den man ACII 
zeichen in ein Array speichern kann, so wie itoa für int zahlen?

von Peter II (Gast)


Lesenswert?

Mark schrieb:
> ich wollte mal fragen, ob es in C ein befehl gibt mit den man ACII
> zeichen in ein Array speichern kann, so wie itoa für int zahlen?

was willst du machen? Zeig mal ein Beispiel.

Ein Zeichen braucht kein Array, weil es nur ein Zeichen ist. viele 
Zeichen sind ein String.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was stellst Du Dir unter "ASCII Zeichen in ein Array speichern" vor?

Was soll das sein?

itoa macht was völlig anderes, das erzeugt aus einem numerischen Wert 
eine Zeichenkette. Aber ... Zeichen sind schon Zeichen - was willst Du 
erreichen?

von Mark (Gast)


Lesenswert?

eigentlich wollte ich über uart debuggen und mir die variablen ausgeben 
lassn. nur arbeite ich ohne printf sonder mit ner string ausgabe.

von Peter II (Gast)


Lesenswert?

Mark schrieb:
> nur arbeite ich ohne printf sonder mit ner string ausgabe.

und warum sendest du dann nicht einfach den String? (ein String ist ein 
Array von zeichen!)

von Mark (Gast)


Lesenswert?

also könnte ich mit der Funktion:

Array[0]='i';

so ein i senden?(bzw so das i in dem Array speichern?

von Peter II (Gast)


Lesenswert?

Mark schrieb:
> so ein i senden?(bzw so das i in dem Array speichern?

ja

von Walter S. (avatar)


Lesenswert?

Mark schrieb:
> Array[0]='i';
>
> so ein i senden?(bzw so das i in dem Array speichern?

ersteres nein, zweites ja

von Mark (Gast)


Lesenswert?

wie ersteres ,zweiteres?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Eintragen ja. Senden?

von Mark (Gast)


Lesenswert?

meinte mit senden, wenn das Array das 'i' enthält ob ich das i auch als 
i über USART/RS232 dann auch als i Ausgegeben bekomme oder ob ich dann 
den Hex(0x69) bzw den dezimal Code(105) bekomme.

von Peter II (Gast)


Lesenswert?

Mark schrieb:
> meinte mit senden, wenn das Array das 'i' enthält ob ich das i auch als
> i über USART/RS232 dann auch als i Ausgegeben bekomme oder ob ich dann
> den Hex(0x69) bzw den dezimal Code(105) bekomme.

kommt darauf an wie du sendest. Wenn deine Senderoutine alle Zeichen 
erst in Hex umwandelt kommt es auch am ende als Hex raus.

von watz (Gast)


Lesenswert?

Was du am anderen Ende liest, ist einzig und allein von der Darstellung 
abhängig. Dein Mikrocontroller wird im falle von
array[0]=105, array[0]=0x69 oder array[0]='i' jedes Mal dasselbe senden. 
Wenn du das ganze am PC im Terminal betrachtest kannst du dann (je nach 
Terminal) einstellen ob du dec, hex, oder ascii als Ausgabe auf dem 
Bildschirm haben willst.

von Teo D. (teoderix)


Lesenswert?

Mark schrieb:
> USART/RS232

Da wird eine Bitfolge übertragen, wie du diese interpretierst ist 
deine Sache.

Eine Bitte hätte ich allerdings an Dich: LIES EIN C-BUCH FÜR ANFÄNGER, 
das nimmt hier doch sonnst kein Ende!

von A. S. (Gast)


Lesenswert?

Mark schrieb:
> meinte mit senden, wenn das Array das 'i' enthält ob ich das i auch als
> i über USART/RS232 dann auch als i Ausgegeben bekomme oder ob ich dann
> den Hex(0x69) bzw den dezimal Code(105) bekomme.

Der Computer kennt nur nullen oder Einsen.

Der Uart kennt auch nur Zahlen von 0..255 in einem Zeichen.

Der Uart zeigt auch nichts an.

Was das Empfangsprogramm auf dem PC-Bildschirm oder auf einem 
4*20-Zeichen-LCD ausgibt, hängt vom dafür zuständigen Programm ab.

folgende Anweisung machen das selbe.

x = 'i';
x = 105;
x = 0x69
x = 100+5;

printf("x ist %i, %x, %c", x,x,x); /*gibt aus:*/

x ist 105, 69, i

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.