सी भाषा में, मैंने वर्चुअल बॉट के साथ एक प्रोग्राम बनाया है ताकि जब आप प्रोग्राम शुरू करें तो यह अपना परिचय दे और मैंने इसे निक नाम दिया है। जब उपयोगकर्ता प्रोग्राम लॉन्च करता है, तो यह उपयोगकर्ता का नाम पूछता है और मैं एक कोड लिखना चाहता हूं कि यदि उपयोगकर्ता का नाम नामों के समान है: निक, निको, निक, निक या बड़े अक्षरों के साथ: निक, निको। निक आदि कार्यक्रम उपयोगकर्ता को बधाई देगा जैसे: "वाह! मेरा एक ही नाम है ..." लेकिन जब उपयोगकर्ता कोई अन्य नाम टाइप करता है जो निक के समान नहीं है, तो प्रोग्राम उसे "हैलो (उपयोगकर्ता का नाम) की तरह बधाई देगा। ..". क्या आप मेरी मदद कर सकते हैं? अग्रिम में धन्यवाद!

-2
Nick 12 अक्टूबर 2019, 21:22
2
हमें खुशी है कि आप यहां हैं और आपको हमें अपना कोड दिखाना चाहिए।
 – 
nicomp
12 अक्टूबर 2019, 21:25
1
एक तरीका जो आसानी से बनाए रखा जा सकता है, वह है नामों की एक सरणी जिसका एक निश्चित तरीके से उत्तर दिया जाना चाहिए। इनपुट के साथ प्रत्येक की तुलना करते हुए सरणी के माध्यम से लूप करें और यदि कोई मेल है तो ध्वज सेट करें। यदि गैर-मानक फ़ंक्शन stricmp या strcasecmp उपलब्ध है जो केस अंतर को आसान बना देगा। उदाहरण के लिए char *nicknames[] = { "Nick", "Nicko", ... };
 – 
Weather Vane
12 अक्टूबर 2019, 21:31

2 जवाब

सबसे बढ़िया उत्तर

आप cstrigns (char dictionary[size][size] जैसा कुछ) की एक सरणी बना सकते हैं और इसे उन शब्दों से भर सकते हैं जिनके खिलाफ आप जांच करना चाहते हैं। फिर इसके माध्यम से पुनरावृति करें, जाँच करें कि क्या इनपुट वर्तमान स्ट्रिंग से मेल खाता है।

0
Cristian Osiac 12 अक्टूबर 2019, 21:25

अन्य लोगों ने उपनामों की तालिका का सुझाव दिया, लेकिन यदि आप उपयोगकर्ताओं की मनमानी संख्या को संभालने की योजना बनाते हैं तो यह थोड़ा बोझिल है। ऊपरी और निचले मामले को संभालना अपेक्षाकृत सरल है; जब आप उस व्यक्ति को संग्रहीत करते हैं जिसे टाइप किया गया है, तो तुलना के लिए उपयोग करने के लिए एक ही मामले में इसकी एक प्रति भी संग्रहीत करें। इस तरह, आपका कार्यक्रम उन्हें उसी तरह संबोधित कर सकता है जैसे उन्होंने पहले किया था। तालिका के बजाय, आप प्रोग्राम कई प्रतिस्थापन नियमों को एन्कोड कर सकते हैं जिन्हें वह एक स्ट्रिंग में स्वीकार कर सकता है: यानी y के लिए; एन के लिए एन, और प्रत्यय जिन्हें अनदेखा किया जा सकता है।

नियमों की संख्या के आधार पर, आप नियमों को एक सामान्यीकरण फ़ंक्शन के रूप में आदेश देने पर विचार कर सकते हैं जिसे आप सार्वभौमिक रूप से लागू करते हैं - उदाहरण के लिए, सभी को y के साथ बदलें, सभी इग्नोरेबल प्रत्ययों को हटा दें, आदि ... - स्ट्रिंग की आपकी संग्रहीत प्रतिलिपि में; इनपुट के लिए समान सामान्यीकरण फ़ंक्शन लागू करें, और फिर कच्चे वाले के बजाय इनकी तुलना करें।

बेशक यहां समस्याएं हैं, इसमें आप किसी नाम की शुरुआत में अधिकतर नियम लागू नहीं करना चाहेंगे, और कुछ केवल तभी उपयुक्त होंगे जब उन्हें कठोर स्वर के बजाय नरम-स्वर पर लागू किया गया हो; जो साउंडएक्स एल्गोरिथम लाता है, जो शब्दों को उनके ध्वन्यात्मक समकक्ष में अनुवाद करता है, ताकि "विज्ञान" और "दृश्य" उनकी संपादन दूरी से कहीं अधिक दूर हो जाएं। इस बिंदु पर, आपने काफी हद तक एक वर्तनी सुधारक लागू किया है।

आपकी समस्या का विवरण भ्रामक रूप से सरल है; इस क्षेत्र में बहुत सारे शोध हुए हैं, और फिर भी सहायक टाइपिंग सहायक कुछ भी नहीं हैं।

0
mevets 12 अक्टूबर 2019, 22:37