Standartmässig gibt es in der Programmiersprache C keine Funktion trim(), mit der man die Leerschläge vor und nach einem String entfernt. Desshalb habe ich meine eigene geschrieben, und möchte diese hier mit euch teilen
Achtung: Es existiert bereits eine Version 2.0!
Hier der Code:
char* trim(char* eing, char* ausg)
{
// By Matthias Dunkel, www.DeDu.ch
int strAnfang, strEnde, x, y;
int lnge = strlen(eing);
for(x=0; x<lnge; x++)
{
if(eing[x] != 32)
{
strAnfang = x;
break;
}
}
for(x=lnge; x>strAnfang; x--)
{
if(eing[x] != 32 && eing[x] != 0)
{
strEnde = x+1;
break;
}
}
y=0;
for(x=strAnfang; x<strEnde; x++)
{
ausg[y] = eing[x];
y++;
}
ausg[y] = '\0';
return ausg;
}
Aufgerufen wird die Funktion wie folgt:
char foo[] = " Hallo miteinander! ";
char bar[];
trim(foo, bar);
In bar steht jetzt “Hallo miteinander!” (Ohne die Leerschläge).
Auch möglich ist:
char foo[] = " Hallo miteinander! ";
trim(foo, foo);
foo ist jetzt “Hallo miteinander!” (Ohne die Leerschläge).
Auch der direkte Aufruf ist möglich:
char foo[] = " Hallo Du!!! ";
printf("%s\n", trim(foo, foo));
foo ist nun “getrimt” und wird direkt ausgegeben.
Bei Fragen einfach einen Kommentar schreiben.
Viel Spass