[C] Zahlen von einem String zu entfernen

C_Boy

Mitglied
Hi leute,

ich hab ein Übungprogramm geschrieben das zahlen von 0,1,2,..-9 von einem String entfernt.
Also wenn ich jetzt eingebe: 4Ich3spiele5Fußball8
Dann sollen die zahlen entfernt werden.

Ich denk mal an der if hats nen schweren Fehler.

Hier mal das Programm:
Code:
#include <stdio.h>

void entfernen(char a[]);

void entfernen(char a[]) //hier noch ein char b[] definieren?
{
  int x=0;

	while(a[x] != '\0')
	{
		if(a[x] == '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0') //mit || und , gehts auch net
		{
			a[x]=' ';
		}
		x++;
	}
}

int main()
{
  char a[300];

	printf("geben sie einen satz mit zahlen ein:\n");
	gets(a);

	entfernen(a);

	printf("der neue satz lautet:%s",a); //hier gibt es mir den satz mit leerzeichen aus
	
	return(0);
}

LG C_boy
 
Ein logisches oder ist ||.
Desweiteren musst du immer etwas vergleichen, also:
Code:
if (a[x] == '1' || a[x] == '2' || ...

Das ist aber immernoch eine unsaubere Lösung.
Du weißt ja dass du alle Ziffern entfernen willst, also Zeichen im Bereich von 0 bis 9.
Somit kannst du einfach überprüfen ob sich das Zeichen in dem Bereich befindet:
Code:
if (a[x] >= '0' && a[x] <= '9' { ...
 
Zuletzt bearbeitet:
Zurück