Führende Nullen

Gast #532718
Lesenswert?

Indem du wahlweise die ersten Nullen im String mit Leerzeichen 
überschreibst oder über einen 2.String in den du die gewünschten Zeichen 
des 1.Strings kopierst.Den Speicher dessen musst du dann hinterher noch 
freigeben...
Gast #532752
Lesenswert?

Den müsstest du eigentlich ohne Einschränkungen zum Ansprechen des 
Feldes verwenden können. Wenn du einer Funktion einen String/Array 
übergibst, kriegt diese auch nur nen Pointer auf die Anfangsadresse.
Gast #533383
Lesenswert?

Wenn ich es so implementier, bekomm ich folgenden Fehler:

error C2440: '=' : 'char *' kann nicht in 'char [6]' konvertiert werden


char sZeit[6]="0000";
sZeit = my_itoa(iZeit,5);

Nach der letzten Aussage müßte das doch gehn, weil sZeit auch nur eine 
Adresse ist.

Was muß ich tun?
Gast #533423
Lesenswert?

>char sZeit[6]="0000";
>sZeit = my_itoa(iZeit,5);

>Nach der letzten Aussage müßte das doch gehn, weil sZeit auch nur eine
>Adresse ist.

sZeit ist ein array,
du musst entweder der Funktion sZeit übergeben,
oder
char *sZeit
definieren
Persönliche Seite #538372
Lesenswert?

So:
1
char* sZeit;
2
sZeit = my_itoa(iZeit,5);
3

4
// sZeit bemachen, ausgeben, was auch immer
5

6
// Speicher freigeben
7
free(sZeit);

Der von my_itoa zurückgegebene Pointer wird in der Funktion dynamisch 
per malloc angefordert. Nach Gebrauch muss der Speicher freigegeben 
werden.

Alternativ ist my_itoa anders zu schreiben, nämlich so, daß ein Pointer 
auf den zu nutzenden Speicherbereich und dessen Größe übergeben werden.
Ein Rückgabewert der Funktion ist damit hinfällig.

Bei untenstehendem Beispiel ist "laenge" um eins niedriger als die 
Anzahl der tatsächlich benötigten Bytes.
1
void my_itoa(int wert, int laenge, char *ret) 
2
{
3
   int i;
4
   for(i=0; i < laenge; i++)
5
   {
6
      ret[laenge-i-1] = (wert % 10) + 48;
7
      wert = wert / 10;
8
   }
9
   ret[laenge]='\0';
10
}
11

12
// Gebrauch:
13

14
#define TEXTLAENGE 5
15

16
char sZeit[TEXTLAENGE + 1] = "0000";
17
my_itoa(iZeit, TEXTLAENGE, sZeit);


Gast #538390
Lesenswert?

>Führende Nullen

Bei diesem Betreff bin ich aufmerksam geworden, musste aber feststellen, 
daß ich ihn falsch verstanden hatte: Irgendwie dachte ich dabei an 
gewisse "qualifizierte" Führungskräfte :D

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren