[C] - Leerzeichen/Buchstaben aus String entfernen...

Hi,

j sollte nur hochgezählt werden, wenn du eine Ziffer in dem Ergebnis-String gespeicher hast und nicht in dem Schleifen-Kopf.

Also
C:
for (i = 0; i <= strlen(str); i++)
{
    if (str[i] >= '0' && str[i] <= '9')
    {
        nurZiffern[j] = str[i];
        j++;
    }
}
 
ah so hatte ich das schon mal... aber ich glaub ich hab den Fehler weiter oben, kann das sein ?

Code:
int main()
{
    char str1[20] = "11 X F4 42 Gxb";
    nurZiffern(str1);
    puts(str1);
    
    system("pause");
    return 0;
}

wenn ich das nämlich zu dem
Code:
puts(nurZiffern(str1));
ändere funktionierts nämlich
 
Ja, richtig. Das hatte ich übersehen.

str1 ist ja der Original-String, der nicht verändert wird. Der veränderte String wird ja von der nurZiffern-Funktion zurück gegeben. Also entweder das Resultat so anzeigen wie du es jetzt gemacht hast oder über

C:
char *result = nurZiffern(str1);
puts(result);

und am Ende der main-Funktion nicht vergessen den Speicher wieder frei zu geben.

C:
free(result);
 
Zurück