Hallo,
ich habe eine Zahlenwerte als Stringvorliegen (1 bis 4 Zeichen) und
möchte den auf 4 Zeichen fest formatieren. In der Funktion arbeite ich
mit dem globalen string, gebe aber am Ende den Zeiger noch zurück, damit
man das gleich für uart-Ausgabe schachteln kann.
Mein Quellcode sieht wie folgt aus:
1 | char * format(char *str, uint8_t digits)
|
2 | {
|
3 |
|
4 | char tmp_str[10];
|
5 |
|
6 | int8_t diff;
|
7 | diff = digits - strlen(str) //digits hier Wert 4
|
8 | for(uint8_t i = 0; i < diff; i++)
|
9 | {
|
10 | tmp_str[0] = '0';
|
11 | tmp_str[1] = '\0';
|
12 | strcat(tmp_str, str);
|
13 | strcpy(str, tmp_str);
|
14 | }
|
15 |
|
16 | return(str);
|
17 | }
|
Ich bin mir bei den Pointern nicht ganz sicher.
Könntet ihr mal drauf schauen und etwas von "ist ok" bis "geht gar
nicht" anmerken.
Danke und Grüße, Alex