Supportnet Computer
Planet of Tech

Supportnet / Forum / Anwendungen(Java,C++...)

Eingabekontrolle in C/C++





Frage

Hallo erstmal. Ich habe folgende Struktur: scanf("%s",Stringvariable); Wie kann ich nun kontrollieren, dass der eingegebene String nur aus Buchstaben besteht. Wie würde das ganze bei Zahleneingaben, und bei beiden(also keine Sonderzeichen) aussehen. Ich wäre über eine Hilfe echt dankbar. Mfg ][Moses][

Antwort 1 von __Moses__

Och nö.

Es muß doch jemand wissen, wie das geht.
Bitte helft mir!

Mfg ][Moses][

Antwort 2 von __Moses__

Schade


Mfg ][Moses][

Antwort 3 von semi

Lese Zeichenweise und vergleiche mit dem zulässigen Zeichen.

#include <stdio.h>

typedef int (*MatchF)(int);

void read(char *s, int l, MatchF f) {
  int c;
  if(s==NULL || f==NULL) {
    printf("Weder s noch f dürfen NULL sein!");
    return;
  }
  while(((c=getch())!=13) && (--l>0)) {
    if(((*f)(c))==1)
      printf("%c",*(s++)=c);
    else
      ungetc(c, stdin);
  }
  *s='\00';
}

int matchAbisZ(int c) {
  int tmp = (c>90)?c-32:c;
  return (tmp>64&&tmp<91)?1:0;
}

int match0bis9(int c) {
  return (c>47&&c<58)?1:0;
}

int main() {
  char str[64];
  char num[64];
  printf("Zeichenkette eingeben ([a-z][A-Z]): ");
  read((char*)&str, 64, (MatchF)matchAbisZ);
  printf("\n%s\n", str);
  printf("Zahl eingeben ([0-9]): ");
  read((char*)&num, 64, (MatchF)match0bis9);
  printf("\n%s", num);
  return 0;
}

Gruß,
Michael

Antwort 4 von __Moses__

Danke, werde es gleich ausprobieren.

Mfg ][Moses][

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: