आपके द्वारा लिखे गए कोड को काम करना चाहिए, लेकिन जिस तरह से आप इरादा नहीं चाहते हैं, वास्तव में enum संकलन के बाद पूर्णांक के रूप में threated हैं और आपके "जेन, feb, mar, apr, मई की ऑब्जेक्ट फ़ाइल में कोई निशान नहीं रह सकता है , जून, जुलाई, अग, सितं, okt, नवं, दिसं ", इस कारण के लिए अपने कार्यक्रम सिर्फ scanf के साथ कमांड लाइन से एक अहस्ताक्षरित संख्या पार्स करके printf के बाद एक ही नंबर देता है .. आप शायद इस
#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;
}
चाहता था
जो enums का उपयोग नहीं करता है, लेकिन यह उचित है क्योंकि एनम का उपयोग दक्षता को कम किए बिना स्रोत पठनीयता को संरक्षित करने के लिए किया जाता है और इस कारण से पूर्णांक के रूप में नहीं होते हैं, इसलिए यदि आप करना चाहते हैं तो स्ट्रिंग पार्सिंग है, तो आपको इसका उपयोग करना होगा स्ट्रिंग्स क्योंकि आपको "जन", "feb" आदि के साथ उपयोगकर्ता इनपुट की तुलना करना है ..
क्यों मुख्य() बिना किसी प्रकार के? –
आपका प्रारूप विनिर्देशक ठीक है। आपको 'stringy' के पते को 'scanf' में पास करने की आवश्यकता है। यानी 'स्कैनफ ("% u", और स्ट्रिंग) ' – simonc
एएएएएएएचएच आपको धन्यवाद सिमोनक, मैं बस एम्परसैंड भूल गया था। धन्यवाद। – Mathias