मेरे पास एक हस्ताक्षरित चार सरणी है जिसे मुझे std :: स्ट्रिंग में चाहिए, लेकिन मेरा वर्तमान तरीका reinterpret_cast का उपयोग करता है जिसे मैं टालना चाहता हूं। क्या ऐसा करने का कोई क्लीनर तरीका है?बिना हस्ताक्षर किए गए char को stdterpret_cast के बिना std :: string में प्राप्त करने का तरीका?
unsigned char my_txt[] = {
0x52, 0x5f, 0x73, 0x68, 0x7e, 0x29, 0x33, 0x74, 0x74, 0x73, 0x72, 0x55
}
unsigned int my_txt_len = 12;
std::string my_std_string(reinterpret_cast<const char *>(my_txt), my_txt_len);
और आपको 'reinterpret_cast' क्यों पसंद नहीं है ...? – egrunin
यह हमेशा एक कास्ट को मजबूर करने के लिए हैक की तरह लगता है, मैं कुछ और चीजों के रूप में व्यवहार करने के लिए मजबूर करने के बजाए चीजों का उपयोग करना चाहता हूं। – WilliamKF
'my_txt' के लिए आपका उपयोग' char' क्यों नहीं है; आखिरकार, आपके द्वारा पोस्ट किए गए मान ASCii हैं। इससे अन्य मुद्दों को हल करने का कारण बन सकता है। –