Forum: Mikrocontroller und Digitale Elektronik String zeichenweise in Array schieben


von Fux (Gast)


Lesenswert?

Hallo
Kann mir jemand sagen wie ich einen String Zeichenweise in ein Array 
schieben kann?

Bsp:
#define SW_VERSION_STRING "SW Version V01.45\n"

Jetzt hätte ich gerne als Resultat in meinem Array X folgendes:

X[0] = S
X[1] = W
X[2] = _
X[3] = V
X[4] = E
X[5] = R

usw...

Danke

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Bei der Definition von X:
char X[] = SW_VERSION_STRING;

Oder im Programm:
#include <string.h>
strcpy(X, SW_VERSION_STRING); // X muss ausreichend groß definiert sein!

Tipp: Besorge dir ein C-Buch.

von Karl H. (kbuchegg)


Lesenswert?

Bis dein C-Buch, das du dir jetzt gleich bei Amazon bestellst, bei dir 
eintrifft, kannst du eine Kurzzusammenfassung mit dem absolut 
Notwendigsten hier nachlesen

http://www.mikrocontroller.net/articles/FAQ#Wie_funktioniert_String-Verarbeitung_in_C.3F

Die 20 Euro für ein C-Buch sind gut investiertes Geld!
Denn durch anlassbedingtes Erfragen von Halbwissen in Foren lernst du C 
in all seinen Facetten und Feinheiten nie.

von Fux (Gast)


Lesenswert?

Ok vielen Dank

Und welches C-Buch ist empfehlenswert?

von Karl H. (kbuchegg)


Lesenswert?

Fux schrieb:
> Ok vielen Dank
>
> Und welches C-Buch ist empfehlenswert?

Es gibt viele.
Immer wieder gerne empfohlen wird der Klassiker

Kernighan & Ritchie  /  Programmieren in C

von Bene J. (terfagter)


Lesenswert?

Hallo zusammen,

wie ich einen String aus "Buchstaben" etc in ein Array mit strcpy 
schreibe weiß ich, aber wie schaffe ich die folgenden Zeichen in ein 
Feld zu schreiben, ohne das aufwendige schreiben? Die Mischung aus 
Hexadezimalwerten und Buchstaben macht mir etwas Probleme.
1
  data[0] = 0x1B;
2
  data[1] = 'D';
3
  data[2] = 'L';
4
  data[3] = 0x1B;
5
  data[4] = 'Z';
6
  data[5] = 'C';
7
  data[6] = 0x03;
8
  data[7] = 0x3F;
9
  data[8] = 'H';
10
  data[9] = 0x0D;
Danke für eure Hilfe!

von Karl H. (kbuchegg)


Lesenswert?

Bene Jan schrieb:
> Hallo zusammen,
>
> wie ich einen String aus "Buchstaben" etc in ein Array mit strcpy
> schreibe weiß ich, aber wie schaffe ich die folgenden Zeichen in ein
> Feld zu schreiben, ohne das aufwendige schreiben?

Indem man in einem C-Buch das Kapitel über Strings liest. Dort ist 
beschrieben, wie man in einen String Zeichen mit ihrem Hex-Wert einfügen 
kann

  strcpy( data, "\x1BDL\x1BZC\x03\x3FH\n" );

Wieso glaubt das eigentlich keiner, wenn wir hier in jeden 2. Thread mit 
einer C Frage den Satz "Du brauchst ein C-Buch" dazuschreiben (müssen).

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Karl heinz Buchegger schrieb:

> Wieso glaubt das eigentlich keiner, wenn wir hier in jeden 2. Thread mit
> einer C Frage den Satz "Du brauchst ein C-Buch" dazuschreiben (müssen).

C-Buch haben ist wie Cheaten!
SCNR

von Micha H. (mlh) Benutzerseite


Lesenswert?

Karl heinz Buchegger schrieb:
> Wieso glaubt das eigentlich keiner, wenn wir hier in jeden 2. Thread mit
> einer C Frage den Satz "Du brauchst ein C-Buch" dazuschreiben (müssen).

Warum sollte jemand sich die Mühe machen und extra ein Buch kaufen, wenn 
Du (oder andere) ja doch immer gleich die Lösung für das anstehende 
Problem gebt, so wie auch hier geschehen.
Tip: Laß doch den Hinweis mit dem Buch gleich bleiben.

von Karl H. (kbuchegg)


Lesenswert?

Micha H. schrieb:

> Tip: Laß doch den Hinweis mit dem Buch gleich bleiben.

Ich geb halt die Hoffnung nicht auf, dass die Fragesteller es dann doch 
irgendwann einsehen, dass es nicht sinnvoll ist sich all die kleinen 
Details mühsam zu erfragen.

von Bene J. (terfagter)


Lesenswert?

Ach Leute,

ich habe ein C-Buch in das ich auch geschaut haben, aber vielleicht war 
ich zu blind oder habe nicht nach dem richtigen gesucht. Mit der der 
Hilfe von K-H B. habe ich aber den entscheidenen Tipp gekriegt und mir 
den Rest aus dem C-Buch und dem Internet geholt. Jetzt konnte ich auch 
geziehlt suchen und habe alles gefunden. Auch das ich die Hex-Werte in 
"" setzen muss, damit nicht das nachfolgende Zeichen nicht mit als 
Hex-Wert gewertet wird etc.
Danke für die Hilfe.

von Gregor B. (gregor54321)


Lesenswert?

array[] = { 0x08, 0x15, 'T', 'e', 's', 't', '\0'};

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.