Irgendwie kann ich die Beitragsvorschau nicht mehr finden. Für mich unerwartet kommt stattdessen eine Meldung von Cloudflare "Please complete the security check to access computerhilfen.de" und nach Markieren aller Bilder mit 'cars' oder 'crosswalks' werde ich auf "Programmieren Forum & Hilfe | Neues Thema starten" umgeleitet.
Wie ich also schon schrieb, soll das hier nur ein erster Entwurf sein, ohne Anspruch auf Vollständigkeit.
#include <stdio.h>
#include <string.h>
#define INPUTSTRINGLAENGE 40 // Diesen Wert so festlegen, dass er für die zu erwartende Länge ausreicht.
eingeben(char inputstring[INPUTSTRINGLAENGE]) {
gets(inputstring);
}
abtasten(char inputstring[INPUTSTRINGLAENGE], int z, int isBin) {
while (inputstring[z]!='\0' && isBin!=0) {
if (inputstring[z]=='0' || inputstring[z]=='1') {
}
else {isBin=0;}
z++;
}
}
int main(int argc, char *argv[]) {
int ziffernummer=0, istBinaer=1;
char eingabestring[INPUTSTRINGLAENGE];
strcpy(eingabestring,"OK");
printf("Wird als erstes Zeichen ein 'q' eingegeben, führt dies zum Programmende.\n");
while (eingabestring[ziffernummer]!='q' && istBinaer!=0) {
printf("Bitte Eingabe machen:\n");
eingeben(eingabestring); ziffernummer=0;
if (eingabestring[ziffernummer]=='1') { // Diese Abfrage wird nur für das erste Zeichen
istBinaer=1; // durchlaufen. Also einmal pro Eingabe.
ziffernummer++;
abtasten(eingabestring, ziffernummer, istBinaer);
}
else {istBinaer=0;}
if(istBinaer==0) { printf("false: Eingabe kann keine Binärzahl sein.\n\n\n"); istBinaer=1;}
else {printf("true: Eingabe %s ist eine Binärzahl.\n\n\n",eingabestring);}
}
printf("Programmende.\n");
return 0;
}
Die Funktion abtasten(char, int, int) müsste in einem ganz entfernten Sinn dem entsprechen, was du als einen Scanner bezeichnest. Eigentlich kann man die auch direkt in main() unterbringen, weil abtasten() nur einmal pro Eingabe aufgerufen wird.
Wenn jemand Fehler findet, diese bitte unbedingt hier melden.