Der Code, den Sie geschrieben sollte funktionieren, aber nicht in der Art und Weise Sie in der Tat ENUM soll, werden als ganze Zahl nach der Kompilierung threated und bleibt keine Spur in der Objektdatei Ihrer „Jan, Feb, März, April, Mai , Juni, Juli, August, September, okt, November, Dezember“, aus diesem Grund das Programm nur eine Zahl ohne Vorzeichen von der Kommandozeile mit scanf analysiert und gibt die gleiche Anzahl nach printf .. Sie wollten wahrscheinlich diese
#include <stdio.h>
#include <string.h>
char* months[] = {"jan","feb","mar","apr","may","jun","jul","aug","sep","okt","nov","dec"};
int main()
{
printf("\n");
printf("Get Number By Month (type first 3 letters): ");
char str[3];
scanf("%s",str);
int i;
for(i=0; i<12; i++)
{
if(!strcmp(str,months[i]))
{
printf("Your month number is: %d",i+1);
}
}
return 0;
}
, die Enums nicht verwendet, aber es ist sinnvoll, weil Enums verwendet werden, um die Lesbarkeit der Quelle zu erhalten, ohne die Effizienz zu beeinträchtigen und aus diesem Grund als Ganzzahlen nicht Zeichenfolgen, also was Sie tun möchten, ist String-Parsing, müssen Sie verwenden Zeichenketten, weil Sie Benutzereingaben mit "Jan", "Feb" usw. vergleichen müssen.
Warum main() ohne Typ? –
Ihr Formatbezeichner ist in Ordnung. Sie müssen die Adresse von 'stringy' in' scanf' eingeben. d. h. 'scanf ("% u ", & strähnig)' – simonc
AAAAAH danke simonc, ich habe nur das Ampersand vergessen. Vielen Dank. – Mathias