Forum: Compiler & IDEs String mit char "füllen"


von Der T. (Gast)


Lesenswert?

Hi!

Ich hole mir aus einer MMC einen fixen Text, den ich noch mit Zeichen
und Zahlen füllen muß.

Nach dem laden aus der MMC habe ich z.B. eine String-Variable text mit
dem Inhalt "Dies ist der xxx. Durchlauf". Zusätzlich habe ich noch
die Variable i, die aktuell z.B. die Zahl 13 (kein String!) enthält.

Wie kann ich nun die "xxx" mit dem String (!) aus der Zahl 13
füllen?

Im Endeffekt soll dann hald "Dies ist der x13. Durchlauf" als Inhalt
der String-Variable text rauskommen!

Hab schon ein bischen rumprobiert und gelesen, finde aber nichts
passendes... Bräuchte was wie printf, nur als Ziel hald eine
Stringvariable anstatt einer Ausgabe.

Im Vorraus schonmal herzlichen dank!

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

für deinen speziellen Fall, ohne Überprüfungen auf Fehler, mit fixem
Offset zum Stringanfang und mit löschen der 'x':

sprintf(text+13,"%3d",i);

Matthias

von Der T. (Gast)


Lesenswert?

Irgendwie hat das bei mir nicht hin... :-(

Probieren wir es mal (testweise, zum verstehen) andersrum:

Ich habe folgenden Code:

------------------
unsigned char i, text[50];
for(i=0; i<8; i++)
{
 text = strcat( text, "Dies ist der xxx. Durchlauf" );
 .....
 uart_puts(text);
}
------------------

Was muß ich in die Zeile mit den Punkten schreiben, dass die xxx durch
z.B. <leerzeichen> <leerzeichen> <inhalt_von_i> aufgefüllt werden?

Dazu möchte ich noch hinzufügen, dass angenommen werden soll dass die
Position der xxx nicht fix ist! (Bräuchte hald sowas wie printf)

Anstelle der xxx kann ich natürlich im vornherein schon z.B. "%3d"
oder so vorgeben, wenn dies was bringen sollte... ;)


Ich steh noch ein bischen auf Kriegsfuss mit Arrays, Strings und
Pointern.. ;)

Danke für eure hilfe!

von Karl H. (kbuchegg)


Lesenswert?

> Hab schon ein bischen rumprobiert und gelesen, finde aber nichts
> passendes... Bräuchte was wie printf, nur als Ziel hald eine
> Stringvariable anstatt einer Ausgabe.

Wie von Matthias schon gesagt:

Wenn Du 'so was wie printf' brauchst, 'nur halt mit einer
Stringvariable (einem character Array) als Ziel', dann
gibt es sowas fertig:

sprintf

Doku lesen!

von flyingwolf (Gast)


Lesenswert?

unsigned char i, text[50];
for(i=0; i<8; i++)
{
 sprintf(text,"Dies ist der %3d. Durchlauf" , i);
 uart_puts(text);
}

von Der T. (Gast)


Lesenswert?

:-D

DANKE!!!

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.