1. परिचय
C भाषा मा स्ट्रिङ तुलना कार्यक्रमको कार्य वा डेटा व्यवस्थित गर्न अत्यन्त महत्वपूर्ण छ। उदाहरणका लागि, प्रयोगकर्ताद्वारा इनपुट गरिएको स्ट्रिङलाई मौजुदा डेटासँग तुलना गर्न वा डेटा सॉर्ट गर्दा प्रयोग गरिन्छ। यस लेखमा, C भाषामा स्ट्रिङ तुलना गर्ने तरिका, फङ्क्शनको प्रयोग र उदाहरणहरू सहित विस्तृत रूपमा व्याख्या गरिनेछ।
2. स्ट्रिङ तुलना गर्न प्रयोग हुने फलनहरू
2.1 strcmp()
फलन
strcmp()
फलन दुई स्ट्रिङहरू तुलना गर्न प्रयोग गरिन्छ। यो फलन तुलना परिणामलाई पूर्णांक मानको रूपमा फिर्ता गर्छ। स्ट्रिङ समान भए 0, पहिलो स्ट्रिङ शब्दकोश क्रममा सानो भए नकारात्मक मान, ठूलो भए सकारात्मक मान फिर्ता गर्छ।strcmp()
प्रयोग गर्दा, string.h
लाइब्रेरीलाई इन्क्लुड गर्न आवश्यक हुन्छ।
2.2 strncmp()
फलन
strncmp()
फलन strcmp()
जस्तै स्ट्रिङ तुलना गर्छ तर निर्दिष्ट अक्षर संख्या मात्र तुलना गर्छ। उदाहरणका लागि, पहिलो 3 अक्षर मात्र तुलना गर्न चाहँदा प्रयोग गरिन्छ। यो फलन बफर ओभरफ्लो रोक्नका लागि, सुरक्षा पक्षमा उच्च सुरक्षा प्रदान गर्छ। प्रयोग गर्दा, string.h
लाइब्रेरी आवश्यक हुन्छ।
3. स्ट्रिङ तुलना को उदाहरण
3.1 strcmp()
को उदाहरण
निम्नमा, strcmp()
प्रयोग गरेर स्ट्रिङ तुलना को उदाहरण छ।
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "apple";
char str2[] = "orange";
int result = strcmp(str1, str2);
if (result == 0) {
printf("The strings are equal.n");
} else if (result < 0) {
printf("str1 is less than str2.n");
} else {
printf("str1 is greater than str2.n");
}
return 0;
}
यो प्रोग्राममा, strcmp()
प्रयोग गरेर str1
र str2
तुलना गरिन्छ, र परिणाम अनुसार सन्देश देखाइन्छ।
3.2 strncmp()
को उदाहरण
अर्को, strncmp()
को प्रयोगको उदाहरण देखाइन्छ।
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "apple";
char str2[] = "application";
int result = strncmp(str1, str2, 3);
if (result == 0) {
printf("The first 3 characters are equal.n");
} else if (result < 0) {
printf("str1 is less than str2 in the first 3 characters.n");
} else {
printf("str1 is greater than str2 in the first 3 characters.n");
}
return 0;
}
यो प्रोग्राममा, strncmp()
प्रयोग गरेर पहिलो 3 अक्षर मात्र तुलना गरिन्छ।
4. त्रुटि ह्यान्डलिंग र सुरक्षा
4.1 त्रुटि ह्यान्डलिंग
स्ट्रिङ तुलना गर्दा, NULL पोइन्टरलाई तुलना नगर्नुहोस् भन्ने ध्यान आवश्यक छ।strcmp()
वा strncmp()
मा NULL पोइन्टर पास गर्दा, प्रोग्राम क्र्यास हुन सक्छ। पोइन्टर NULL छैन भनी पूर्व जाँच गरेर, यो समस्या रोक्न सकिन्छ।
4.2 बफर ओभरफ्लो रोकथाम
strncmp()
बफर ओभरफ्लो रोक्न प्रयोग गरिन्छ। निर्दिष्ट अक्षर संख्या मात्र तुलना गरेर, ठूलो स्ट्रिङहरूबीचको तुलना पनि सुरक्षित हुन्छ। यो विशेष गरी बाह्यबाट इनपुट गरिएको डेटा ह्यान्डल गर्दा महत्वपूर्ण छ।
5. सारांश
C भाषामा स्ट्रिङ तुलना गर्दा, strcmp()
र strncmp()
का दुईवटा फलनहरू मुख्य रूपमा प्रयोग गरिन्छ। प्रत्येक फलनको विशेष प्रयोग हुन्छ, र सुरक्षित रूपमा प्रयोग गर्नका लागि बुँदाहरू पनि छन्। विशेष गरी strncmp()
लाई, सुरक्षा पक्षबाट सिफारिस गरिने अवस्थामा हुन सक्छ। यो लेख मार्फत, यी फलनहरूको प्रयोग र त्रुटि ह्यान्डलिङबारे बुझाइ गहिरो भएको होला। उचित रूपमा प्रयोग गर्दा, अझ बलियो प्रोग्राम बनाउन सकिन्छ।
6. FAQ
6.1 strcmp()
र strncmp()
को भिन्नता के हो?
strcmp()
ले दुई स्ट्रिङ्गको सम्पूर्ण भाग तुलना गर्छ, तर strncmp()
ले निर्दिष्ट गरिएको अक्षर संख्या मात्र तुलना गर्छ। strncmp()
प्रायः बफर ओभरफ्लो रोक्न प्रयोग गरिन्छ।
6.2 strcmp()
मा तुलना गरिएको परिणाम 0 बाहेकको अवस्थामा सम्बोधन विधि के हो?
परिणाम 0 बाहेकको भए, यदि नकारात्मक मान हो भने पहिलो स्ट्रिङ्ग शब्दकोश क्रममा सानो हो भन्ने संकेत गर्छ, र सकारात्मक मान हो भने ठूलो हो भन्ने संकेत गर्छ। कार्यक्रमको आवश्यकताअनुसार उपयुक्त रूपमा प्रक्रिया गर्नुहोस्।
6.3 स्ट्रिङ तुलनामा NULL प्वाइन्टर ह्यान्डल गर्दा ध्यान दिनुपर्ने बुँदाहरू के हुन्?
NULL पोइन्टरलाई strcmp()
वा strncmp()
मा पास गर्दा कार्यक्रम क्र्यास हुन सक्छ। तुलना गर्नु अघि पोइन्टर NULL नभएको कुरा जाँच गर्नु महत्त्वपूर्ण छ।