[Beginner]Benutzereingabe einschränken
-
Guten Tag
die Eingabe des Benutzers soll sich auf A -Z, a - z und 0 - 9 beschränken nur funktioniert das Programm nicht so wie ich es beabsichtigt hatte.#include <stdio.h> #define MAXLINE 1000 int getline(char line[], int maxline); int main() { int a; char line[MAXLINE]; a = getline(line, MAXLINE); return 0; } int getline(char s[], int lim) { int i, c; for(i=0; i<lim-1 || (c=getchar())==EOF || c== '\n' || c!= 'A' - 'Z' || c!= 'a' - 'z' || c!= '0' - '9'; i++) /* Abbruchbedingungen i<lim array voll, eingabe EOF, \n, zeichen ausserhalb zulässigen zeichenmenge*/ { s[i] = c; if (c != 'A' - 'Z' || c != '1' - '9' || c != 'a' -'z' || c != '\n') printf("Die Eingabe ist nicht Teil der zulässigen Zeichenmenge!"); if (c == '\n') s[i] = c; i++; /* Wegen \0 zeichen am Stringende i++ */ } s[i] = '\0'; return i; }
-
int i=0; char c; for(;i<lim && (c=getchar()) != EOF &&((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'));i++){ s[i] = c; } s[i] = "\0";
hoffe das stimmt so
, btw. dir fehlen grundkentnisse...
lg lolo
-
char c = ... if (isalnum(c)) { ... } ...
http://www.gnu.org/software/libc/manual/html_mono/libc.html#Classification-of-Characters
-
earli schrieb:
char c = ... if (isalnum(c)) { ... } ...
http://www.gnu.org/software/libc/manual/html_mono/libc.html#Classification-of-Characters
stimmen die buchstaben wenn ich die locale umstell :p
grundsätzlich hast du aber recht...
-
noobLolo schrieb:
stimmen die buchstaben wenn ich die locale umstell :p
grundsätzlich hast du aber recht...Für A-Za-z0-9 stimmt es. Bei anderen Zeichen kann Murks rauskommen, ist aber unwahrscheinlich, und selbst wenn, passiert nichts.
-
noobLolo schrieb:
stimmen die buchstaben wenn ich die locale umstell :p
ja schon, die funktionen hängen nicht von der einstellung ab
http://www.gnu.org/software/libidn/coverage/lib/gl/c-ctype.c.gcov.frameset.html