C में स्ट्रिंग के लिए strlen() और sizeof() के बीच अंतर

स्ट्रलेन() क्या है?

strlen() एक स्ट्रिंग की लंबाई ज्ञात करने का फ़ंक्शन है। यह स्ट्रिंग में मौजूद कुल वर्णों की गणना करता है, तथा शून्य वर्ण को हटाता है। स्ट्रिंग में वर्णों की कुल संख्या में अक्षर, विशेष वर्ण और संख्याएँ, रिक्त स्थान के साथ शामिल हैं।

sizeof() क्या है?

sizeof() एक ऐसा फ़ंक्शन है जिसका उपयोग इसके ऑपरेंड के आकार की गणना करने के लिए किया जाता है। यह किसी विशेष चर का आकार लौटाता है। यह फ़ंक्शन किसी भी डेटा प्रकार पर लागू किया जा सकता है, जिसमें पूर्णांक और जैसे आदिम प्रकार शामिल हैं सूचक प्रकार, फ़्लोटिंग-पॉइंट प्रकार, संरचना, या यूनियन। sizeof() वाले प्रोग्राम का आउटपुट 32-बिट सिस्टम और 64-बिट सिस्टम पर अलग-अलग हो सकता है।

प्रमुख अंतर

  • Strlen विधि का उपयोग किसी सारणी की लंबाई ज्ञात करने के लिए किया जाता है जबकि sizeof() विधि का उपयोग डेटा का वास्तविक आकार ज्ञात करने के लिए किया जाता है।
  • Strlen() स्ट्रिंग में वर्णों की संख्या गिनता है जबकि sizeof() ऑपरेंड का आकार लौटाता है।
  • Strlen() चर के शून्य मान को खोजता है लेकिन sizeof() चर मान की परवाह नहीं करता है।
  • strlen() में वापसी मान long int है, जबकि sizeof() में वापसी मान unsigned int है।

strlen() का सिंटैक्स

strcount = strlen(my_string); 

यहाँ, my_string एक वर्ण सरणी चर है।

strlen() का उदाहरण

नीचे दिए गए C प्रोग्राम में, हमने char प्रकार का स्ट्रिंग वेरिएबल घोषित किया है। Strng वेरिएबल को strlen() फ़ंक्शन के तर्क के रूप में पास किया जाता है ताकि लंबाई ज्ञात की जा सके स्ट्रिंग.

#include<stdio.h> 
#include<string.h> 
int main() 
{ 
    char strng[] = "January"; 
    printf("Length of given string is: %lu\n", strlen(strng));   
}

आउटपुट:

Length of given string is: 7

sizeof() का सिंटैक्स

वाक्यविन्यास 1)

आकार(प्रकार): प्रकार= संदर्भित प्रकार

sizeof(type) का उदाहरण:

नीचे दिए गए कोड में, &type वेरिएबल (डबल x) का पता देता है। इसे 1 से बढ़ाया जाता है जो वह पता देता है जहाँ आप x प्रकार के अगले वेरिएबल को स्टोर कर सकते हैं।

x को char* में टाइपकास्ट करने और अंतर लेने से आप मेमोरी में संग्रहीत char प्रकार के चरों की कुल संख्या जान सकेंगे। हमने कैरेक्टर पढ़ने के लिए getchar() का उपयोग किया है।

#include<stdio.h> 
#define my_sizeof(type) (char *)(&type+1)-(char*)(&type) 
int main() 
{ 
    double x; 
    printf("%ld", my_sizeof(x)); 
    getchar(); 
    return 0; 
}

उत्पादन:

8

वाक्यविन्यास 2)

आकार (चर-नाम): चर-नाम = उस चर का नाम जिसका आकार आप निर्धारित करना चाहते हैं।

नीचे दिए गए C प्रोग्राम में, हम size char डेटा टाइप प्रिंट कर रहे हैं। Printf स्टेटमेंट में char तर्क के साथ sizeof फ़ंक्शन शामिल है।

sizeof(variable-name) का उदाहरण:

#include<stdio.h>
int main()
{
	printf("sizeof(char) = %d\n\n", sizeof(char));
		
	return 0;
}

आउटपुट:

sizeof(char) = 1

वाक्यविन्यास 3)

आकार(अभिव्यक्ति): अभिव्यक्ति = अभिव्यक्ति जिसका आपको मूल्यांकन करना है।

sizeof(expression) का उदाहरण:

नीचे दिए गए प्रोग्राम में, हम सबसे पहले वेरिएबल के आकार की गणना और प्रिंट कर रहे हैं। इसके बाद, हम एक्सप्रेशन का मूल्यांकन कर रहे हैं, इसे वेरिएबल a में स्टोर कर रहे हैं, और परिणाम को printf स्टेटमेंट में प्रदर्शित कर रहे हैं।

#include<stdio.h>
int main() {
   char p = 'S';
   double q = 4.65;
   printf("Size of variable p : %d\n",sizeof(p));
   printf("Size of an expression : %d\n",sizeof(p+q));
   int a = (int)(p+q);
   printf("Size of explicitly converted expression : %d\n",sizeof(a));
   return 0;
}

आउटपुट:

Size of variable p : 1                                                                                                                               
Size of an expression : 8                                                                                                                            
Size of explicitly converted expression : 4  

strlen() और sizeof() के बीच अंतर

strlen() और sizeof() के बीच महत्वपूर्ण अंतर इस प्रकार हैं:

strlen() और sizeof() के बीच अंतर

स्ट्रलेन() का आकार()
Strlen() एक पूर्वनिर्धारित फ़ंक्शन है, जिसे string.h नामक हेडर फ़ाइल में परिभाषित किया गया है। Sizeof() एक एकल ऑपरेटर या संकलन-समय अभिव्यक्ति है जो किसी फ़ाइल द्वारा घेरे गए मेमोरी की मात्रा की गणना करता है। परिवर्तनशील.
इस विधि का उपयोग स्ट्रिंग या वर्ण की एक सरणी की लंबाई ज्ञात करने के लिए किया जाता है। इस विधि का उपयोग बाइट्स में डेटा (आवंटित) का वास्तविक आकार ज्ञात करने के लिए किया जाता है।
यह शून्य मानों को हटाकर स्ट्रिंग में वर्णों की संख्या की गणना करता है। यह ऑपरेंड का आकार लौटाता है, स्ट्रिंग की लंबाई नहीं (शून्य मानों सहित)।
यह रनटाइम पर मेमोरी आवंटित करता है और वेरिएबल के शून्य मान की तलाश करता है। Sizeof() चर मान की परवाह नहीं करता है।
Strlen() फ़ंक्शन केवल वर्ण स्ट्रिंग के साथ काम करता है Sizeof() फ़ंक्शन बाइट्स में आवंटित मेमोरी की मात्रा लौटाता है।
strlen() में वापसी मान long int है। sizeof() में वापसी मान unsigned int है।
strlen() का केवल एक सिंटैक्स है जो int strlen(const char *str) है; sizeof() के तीन सिंटैक्स हैं 1) sizeof(type), 2) sizeof(variable-name), और 3) sizeof(expression):