www.mikrocontroller.net

Forum: PC-Programmierung Anfängerfrage Schleife hochzählen


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!!
Möchte vom PC aus zum µC einen String senden, dieser soll mittels einer 
Schleife den Wert um eins erhöhen.
Wie eine Schleife funktioniert ist mir klar, aber ich möchte folgenden 
String senden: "WERT00001". Beim nächstem Schleifendurchlauf soll 
"WERT00002" ausgegeben werden usw.  Wie mache ich denn das, in C 
z.B.????

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thorsten wrote:
> Hi!!
> Möchte vom PC aus zum µC einen String senden, dieser soll mittels einer
> Schleife den Wert um eins erhöhen.
> Wie eine Schleife funktioniert ist mir klar, aber ich möchte folgenden
> String senden: "WERT00001".

Du sagst es hier selbst: Du hast einen String.
Ein String ist aber nur eine Zeichenfolge. Um aber etwas
zum rechnen zu haben brauchst du eine Zahl.
Also wirst du nicht umhinkommen, den String mal in 2
Teile zu zerlegen:
  * den Textanteil          (in deinem Fall "WERT")
  * den numerischen Anteil  ( in deinem Fall "00001")

Der numerische Anteil wird dann in eine tatsächliche Zahl
gewandelt (zb. mittels atoi() ) und ab dort kannst du
dann deine Schleife einsetzen. Für die Ausgabe musst du
dann aus konstanten Textteil und der veränderten Zahl
wieder eine entsprechende Ausgabe basteln.

Reicht dir das als Hinweis oder brauchst du noch mehr?

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!
Danke für die Antwort.
Ok,beim µC ist klare das ich atoi() oder sowas verwenden muss.
Beim PC zähle ich eine Schleife beim jedem Durchlauf um 1 hoch.
Die beiden Strings (WERT+ZAHL) kann man zusammensetzen bzw. einen String 
an einen anderen dranhängen. Wie bastele ich aber aus  z.B. 5 einen 
String "00005". Die Umwandlung sollte in der Schleife stattfinden.
Gruß

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define ANZAHL 34

int i;

for (i = 0; i < ANZAHL; i++)
  printf("WERT%05d\n", i);

gibt WERT00000 bis WERT00033 aus.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Rufus :)
War doch ganz schön einfach...heh.
Gruß

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.