strlen(const char *s)
परिभाषित किया गया है जब s
शून्य-समाप्त नहीं हुआ है, और यदि ऐसा है, तो यह क्या लौटाता है?strlen()?
उत्तर
नहीं, यह परिभाषित नहीं किया गया है। इसके परिणामस्वरूप स्मृति पहुंच उल्लंघन हो सकता है, क्योंकि यह पहली स्मृति बाइट तक पहुंचने तक गिनती रखेगा जिसका मूल्य 0 है।
यह राक्षसों को आपकी नाक उड़ाने का कारण भी बना सकता है। http://catb.org/jargon/html/N/nasal-demons.html –
जो मेरी दर्दनाक नाक को बताता है। –
यह परिभाषित नहीं किया गया है। यह अनिर्धारित व्यवहार का कारण बनता है जिसका अर्थ है कि कुछ भी हो सकता है, संभवतः आपका प्रोग्राम क्रैश हो जाएगा।
यह हमेशा परिभाषित किया जाता है।
यह "स्ट्रिंग" की लंबाई वापस लौटाएगा जब तक कि यह एक बाइट तक नट तक पहुंच जाए। बुरा विचार क्योंकि यह एक बफर ओवरफ्लो का कारण बन सकता है।
नहीं, यह परिभाषित नहीं है। एक बार जब आप स्ट्रिंग के लिए आवंटित स्थान से परे ट्रैवर्सिंग शुरू कर देते हैं, या तो मॉलोक या स्टैक/ढेर पर, परिणाम सख्ती से अपरिभाषित होते हैं। –
C99 मानक से:
strlen समारोह अक्षर हैं जो पूर्व में होना अशक्त चरित्र समाप्त संख्या दिखाता है।
यदि कोई शून्य चरित्र नहीं है जिसका अर्थ है कि परिणाम अपरिभाषित है।
वास्तव में नहीं, और यह bad things का कारण बन जाएगा।
strlen() केवल शून्य-समाप्त तारों पर काम करता है (कुछ उपयोगी करता है); यदि आप इसके अलावा किसी अन्य चीज़ में पास करते हैं तो आपको एक पूरी तरह से अपरिभाषित परिणाम मिल जाएगा। यदि आप भाग्यशाली हैं, तो यह क्रैश नहीं करेगा :)
सुधार, यदि वह भाग्यशाली है तो यह दुर्घटनाग्रस्त हो जाएगा। आप इस प्रकार की त्रुटि को ध्यान में रखना नहीं चाहते हैं: -पी। –
यदि आपकी स्ट्रिंग एनयूएल समाप्त नहीं हुई है, तो फ़ंक्शन तब तक देखेगा जब तक कि यह एक नहीं पाता।
यदि आप भाग्यशाली हैं, तो यह आपके प्रोग्राम को क्रैश कर देगा।
यदि आप भाग्यशाली नहीं हैं, तो आप अपेक्षाकृत लम्बाई से अधिक बड़े होंगे, इसमें बहुत से 'अप्रत्याशित' मूल्य होंगे।
आदमी 3 strcspn
size_t strcspn (स्थिरांक चार * रों, स्थिरांक चार * अस्वीकार);
बृहदान्त्र सीमांकित तार का एक लंबाई:
size_t len = strcspn(str, ":");
अल्पविराम से परे तार का एक लंबाई:
size_t len = strcspn(str, ",");
टैब सीमांकित तार का एक लंबाई:
size_t len = strcspn(str, "\t");
- 1. strlen() जीसीसी
- 2. तेजी से strlen?
- 3. sizeof बनाम strlen
- 4. संकलन समय "strlen()" प्रभावी है?
- 5. सी तार, strlen और वेलग्रिंड
- 6. strlen, mb_strlen, जिसका उपयोग करने के लिए?
- 7. जीसीसी संकलन त्रुटि: 'strlen' की घोषणा उपलब्ध होनी चाहिए
- 8. एक स्ट्रेलन है, और एक wcslen है, लेकिन क्या एक टेम्पलेट फ़ंक्शन है जैसे strlen <char> या strlen <wchar_t>?
- 9. कैसे स्ट्रिंग की लंबाई को खोजने के लिए उद्देश्य सी में strlen का उपयोग
- 10. लूप स्थिति में strlen() का उपयोग सिर्फ शून्य चरित्र की जांच करने से धीमा है?
- 11. सी ++ चार पर memset के लिए बराबर *
- 12. सेगमेंटेशन फॉल्ट - सी
- 13. मेरे लिए काम क्यों नहीं कर रहा है?
- 14. सी ++ size_t या ptrdiff_t
- 15. अंतर
- 16. एक स्ट्रिंग के लिए malloc स्थान के लिए सही तरीका और फिर उस स्थान में अक्षर डालें?
- 17. phpdoc मानक?
- 18. मैं पर्ल में एक स्ट्रिंग की लंबाई कैसे प्राप्त करूं?
- 19. लंबाई अलग हैं
- 20. क्या भेजता है() सभी बफर भेजते हैं?
- 21. लूप के लिए इसमें कितनी बार स्ट्रेलन() कहा जाएगा?
- 22. मुख्य केवल तर्कों के पहले अक्षर प्राप्त करते हैं
- 23. स्मार्ट को स्ट्रॉप्स के साथ एक var के substring हो रहा है जैसे शुरू होता है और
- 24. एक टेक्स्ट कॉलम का चयन कैसे करें, जो स्ट्रिंग लंबाई> 0?
- 25. मानदंड लाइब्रेरी
- 26. स्ट्रिंग मैनिपुलेशन और मेमोरी आवंटन - सी
- 27. सी ++ चार सरणी शून्य टर्मिनेटर स्थान
- 28. सी ++ यूआरएलएनकोड लाइब्रेरी (यूनिकोड सक्षम)?
- 29. सी में ऑपरेटर ओवरलोडिंग ++ पूर्णांक के रूप में + obj
- 30. क्या स्ट्रिंग को छोटा करने का कोई और तरीका है?
अपने आप से पूछें: स्ट्रेल() को कैसे पता होना चाहिए कि आपकी स्ट्रिंग समाप्त होती है, अगर यह शून्य-समाप्त नहीं होती है? – DevSolar
तकनीकी रूप से बोलते हुए, सी स्ट्रिंग जैसी कोई चीज नहीं है जो एनयूएल-समाप्त नहीं होती है, क्योंकि एनयूएल-टर्मिनेटर को सी स्ट्रिंग का हिस्सा माना जाता है :) – fredoverflow