मैं एक सी/सी ++ प्रोग्राम लिख रहा हूं जिसमें एक स्ट्रिंग में एक संख्या का हेक्स प्रस्तुति डालना शामिल है और मैं उलझन में हूं कि कैसे \x
काम करता है। मैंने उदाहरण देखा है जहां लोगों ने "\ xb2" जैसी चीजें लिखी हैं। इस मामले में, प्रोग्राम को कैसे पता चलेगा कि आप बी के हेक्स को नंबर 2 के बाद चाहते हैं या यदि आप बी 2 के हेक्स चाहते हैं? इसके अतिरिक्त, जब यह इसे स्मृति में संग्रहीत करता है तो क्या यह "\ x" वर्णों को सहेजता है या क्या यह हेक्स प्रतिनिधित्व को बचाता है?स्ट्रिंग में " x" कैसे काम करता है?
उत्तर
C99 मानक (6.4.4.4) से:
प्रत्येक अष्टाधारी या हेक्साडेसिमल एस्केप अनुक्रम अक्षर हैं जो का गठन कर सकते हैं एस्केप अनुक्रम की सबसे लंबी अनुक्रम है।
उदाहरण के लिए, स्ट्रिंग "123\x45"
31 32 33 45
के रूप में हेक्स में संग्रहित है।
ओली के उत्तर के अनुसार, '\ x' के बाद सबसे लंबा मान्य मान उपयोग किया जाता है।
'x' संग्रहित नहीं है। कोई भी बच अनुक्रम स्क्रीन पर दिखाई देने वाले वर्णों को संग्रहीत नहीं करता है, यह निर्दिष्ट वास्तविक वर्ण को संग्रहीत करता है। उदाहरण के लिए, '\ n' वास्तव में एक लाइनफीड चरित्र, 0x0A के रूप में संग्रहीत किया जाता है।
जब आप स्ट्रिंग के अंदर भागने अनुक्रम \ x का उपयोग करते हैं तो \ x वास्तव में इसके बाइनरी प्रतिनिधित्व में संग्रहीत डेटा होता है।
तो स्ट्रिंग "एबीसी" स्ट्रिंग के बराबर है "\ x414243"
आप प्रदर्शन-चरित्र के रूप में हेक्साडेसिमल मान फेंकना चाहते हैं, आप% x या% एक्स फॉर्मेट स्पेसिफायर का उपयोग करना चाहेंगे चरित्र:
printf("%X%X%X", 'A', 'B', 'C'); // emits "414243"
धारा 1.2.6 देखें और सी लाइब्रेरी संदर्भ गाइड
आशा है कि स्पष्टीकरण में मदद करता है की धारा 1.2.7।
अनुवाद संकलन-समय पर किया जाता है ताकि प्रत्येक स्ट्रिंग मैन्युअल रूप से \x
के साथ स्रोत कोड में प्रवेश करे और इस तरह के चरित्र को द्विआधारी में दर्शाया गया हो। यदि आप रन-टाइम पर ऐसा करना चाहते हैं तो आपको हेक्स युक्त स्ट्रिंग को पार करने और इसे चार में डालने के लिए आधार 16 का उपयोग करके strtol()
जैसे एक पार्स फ़ंक्शन को आमंत्रित करने की आवश्यकता होगी।
- 1. 'x आयात * से काम करता है'
- 2. java.awt.Color.getColor (स्ट्रिंग रंगनाम) कैसे काम करता है?
- 3. Regex में MatchEvaluator कैसे काम करता है?
- 4. std :: स्ट्रिंग x (x);
- 5. Matlab - save (int2str (i), x) काम नहीं करता है - तर्क में एक स्ट्रिंग
- 6. पर्ल सबराउटिन में @_ कैसे काम करता है?
- 7. obfuscators में स्ट्रिंग obfuscation कैसे काम करता है?
- 8. multiprocessing.Manager() पायथन में कैसे काम करता है?
- 9. ऑपरेटर में ग्रोवी कैसे काम करता है?
- 10. IOrderedEnumerable.ThenBy() .Net में कैसे काम करता है?
- 11. var x = x || क्या करता है {};
- 12. TouchImageView कैसे काम करता है?
- 13. वर्तमानPopoverFromRect कैसे काम करता है?
- 14. Magento कैसे काम करता है?
- 15. weakhashmap कैसे काम करता है?
- 16. cocos2d-x के लिए CCScrollView जो काम करता है?
- 17. GetModuleHandle() कैसे काम करता है?
- 18. पाइथन में कॉलिंग कैसे काम करता है?
- 19. Langage.Haskell.TH.report कैसे काम करता है?
- 20. स्ट्रिंग (शून्य) क्यों काम करता है?
- 21. StringLengthAttribute कैसे काम करता है?
- 22. matrix.setlookatm कैसे काम करता है?
- 23. कैसे काम करता है?
- 24. 'टाइपऑफ' कैसे काम करता है?
- 25. PyArg_ParseTupleAndKeywords कैसे काम करता है?
- 26. जिन्न कैसे काम करता है?
- 27. AsyncTask <स्ट्रिंग, शून्य, शून्य> कैसे काम करता है?
- 28. दो स्ट्रिंग अक्षरों का संयोजन कैसे काम करता है?
- 29. आईओएस 3.x में मेरा एआरसी ऐप कैसे काम करता है?
- 30. "स्ट्रिंग" x-axis
और जब यह इस अनुक्रम को संग्रहीत करता है तो क्या यह वास्तव में अक्षर \ x को संग्रहीत करता है? – Nosrettap
@Nosrettap: नहीं, अनुवाद संकलन समय पर किया जाता है। –
मुझे पता है कि यह लगभग 6 साल पुराना है, लेकिन स्ट्रिंग में कुछ भी लिखे बिना हेक्साडेसिमल अनुक्रम से बचने का कोई तरीका है ?? कहें कि मैं 255 'ए' 'बी' 'सी' के साथ एक स्ट्रिंग रखना चाहता हूं। मैं "\ xffabc" नहीं लिख सकता और मैं "\ xff abc" नहीं लिख सकता क्योंकि मैं एक चरित्र जोड़ रहा हूं। – yakoudbz