Frage zu einer Funktion in C unter Windows
-
Hallo,
ich möchte ein Programm in C erstellen, bei dem ein string aus Char eingelesen, und alle buchstaben, leerzeichen und andere Sonderzeichen rausgelöscht werden, und nur die Zahlen behalten werden. Also eine Funktion nurZahlen.Beispiel:
char s [] "abc23 xaA 03 ??$ 91 Ende";
nurZiffern(s)
printf("%s",s); //ergibt 230391
-
Das Array ist dann zwar zu groß aber es funktioniert:
void nurZiffern(char *s) { int i=0, j=0; while (s[i]) { if ( (s[i]>='0') && (s[i]<='9')) { s[j] = s[i]; j++; } i++; } s[j] = s[i]; } int main() { char s [] = "abc23 xaA 03 ??$ 91 Ende"; nurZiffern(s); printf("%s",s); //ergibt 230391 return 0; }
-
void digitalize(char* s) { int i=0,j=0; do { if(isdigit(*(s+i))) s[j++]= *(s+i); }while( *(s+i++) ); if(j) s[j]=0; }
-
oder so. geht auch mit konstanten strings:
#include <stdio.h> #include <ctype.h> char *nurZahlen (char *in) { static char out[256]; int i = 0; for (i=0; *in && i < sizeof(out)-1; in++) if (isdigit(*in)) out[i++] = *in; out[i] = 0; return out; } int main(void) { printf ("%s\n", nurZahlen("abc23 xaA 03 ??$ 91 Ende")); }
-
Na endlich funktioniert des. :p Danke für eure Antworten.
MFG Darkmaster