Forum: Mikrocontroller und Digitale Elektronik ASCII to Array?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Mark (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

ja

von Walter S. (avatar)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
wie ersteres ,zweiteres?

von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Eintragen ja. Senden?

von Mark (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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. (achs)


Bewertung
0 lesenswert
nicht 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

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.