Printf Feldlänge zur Laufzeit berechnen
-
Hallo zusammen,
ich brüte derzeit über einem kleinen Problem und stehe ziemlich auf dem Schlauch, vielleicht kann mir jemand helfen.
Ich will einfach einen String einlesen und ausgeben lassen und eine Zeile darunter soll die Zeichenanzahl des Strings ausgegeben werden und zwar bündig zum Stringende, etwa so:
Teststring
______10Wie kann man das realisieren mit printf?
Folgendes habe ich, aber der Kern fehlt noch, nämlich die variable Feldläenge im letzten printf-Kommando.
#include<stdio.h> #include<string.h> #include<stdint.h> #define MAX 20 int main(void) { char szName[MAX]; uint8_t uiLen; printf("Bitte String eingeben: "); scanf("%s", szName); uiLen = strlen(szName); printf("%s\n", szName); printf("%d\n", uiLen); return 0; }
-
Der * beim width modifier machts:
printf("%*d\n", uiLen, uiLen);
-
Hallo Dirk,
so funktionierts, danke. Von selbst wäre ich nicht drauf gekommen.
-
mchsp schrieb:
Von selbst wäre ich nicht drauf gekommen.
Man sollte schon mal die Beschreibungen zu den Funktionen (genau) lesen.
Sonst wäre noch der Umweg über einen eigenen Formatstring gegangen:
char format[20]; sprintf(format, "%%%dd\n", uiLen); // Schreibt bei diesem Beispiel "%10d\n" printf(format, uiLen);