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][
Es muß doch jemand wissen, wie das geht.
Bitte helft mir!
Mfg ][Moses][
Antwort 2 von __Moses__
Schade
Mfg ][Moses][
Mfg ][Moses][
Antwort 3 von semi
Lese Zeichenweise und vergleiche mit dem zulässigen Zeichen.
Gruß,
Michael
#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][
Mfg ][Moses][

