C ++ 98 के लिए , कुछ विकल्प हैं:
boost/lexical_cast
बूस्ट C ++ लाइब्रेरी का हिस्सा नहीं है, लेकिन इसमें कई उपयोगी लाइब्रेरी एक्सटेंशन हैं।
lexical_cast
समारोह टेम्पलेट के लिए और मनमाने ढंग से प्रकार जब वे पाठ के रूप में प्रतिनिधित्व कर रहे हैं से आम रूपांतरण समर्थन करने के लिए एक सुविधाजनक और सुसंगत रूप प्रदान करता है।
- बूस्ट डॉक्यूमेंटेशन
#include "boost/lexical_cast.hpp"
#include <string>
int main() {
int x = 5;
std::string x_str = boost::lexical_cast<std::string>(x);
return 0;
}
रनटाइम के लिए, lexical_cast
ऑपरेशन में पहले रूपांतरण पर लगभग 80 माइक्रोसेकंड (मेरी मशीन पर) लगते हैं, और फिर बाद में अगर यह बहुत तेजी से किया जाता है, तो गति बढ़ जाती है।
itoa
यह फ़ंक्शन ANSI-C में परिभाषित नहीं है और C ++ का हिस्सा नहीं है, लेकिन कुछ संकलक द्वारा समर्थित है।
- cplusplus.com
इसका मतलब है कि कोड का उपयोग नहीं कर सकते gcc
/ g++
कर सकते हैं itoa
।
#include <stdlib.h>
int main() {
int x = 5;
char * x_str = new char[2];
x_str = itoa(x, x_str, 10); // base 10
return 0;
}
रिपोर्ट करने का कोई क्रम नहीं। मेरे पास विजुअल स्टूडियो स्थापित नहीं है, जो कथित तौर पर संकलन करने में सक्षम है itoa
।
sprintf
sprintf
एक C मानक लाइब्रेरी फ़ंक्शन है जो C स्ट्रिंग्स पर काम करता है, और एक पूरी तरह से वैध विकल्प है।
उसी पाठ के साथ एक स्ट्रिंग की रचना करता है जो प्रिंटफ़ पर प्रारूप का उपयोग करने पर मुद्रित किया जाएगा, लेकिन मुद्रित होने के बजाय, सामग्री को स्ट्रिंग द्वारा इंगित बफर में सी स्ट्रिंग के रूप में संग्रहीत किया जाता है।
- cplusplus.com
#include <stdio.h>
int main() {
int x = 5;
char * x_str = new char[2];
int chars_written = sprintf(x_str, "%d", x);
return 0;
}
stdio.h
शीर्ष लेख आवश्यक नहीं हो सकता। रनटाइम के लिए, sprintf
ऑपरेशन पहले रूपांतरण पर लगभग 40 माइक्रोसेकंड (मेरी मशीन पर) लेता है, और फिर बाद में अगर यह बहुत तेजी से किया जाता है, तो गति बढ़ाता है।
stringstream
यह C ++ लाइब्रेरी का पूर्णांक स्ट्रिंग्स में कनवर्ट करने का मुख्य तरीका है, और इसके विपरीत। बहन के समान कार्य हैं stringstream
जो स्ट्रीम के इच्छित उपयोग को और सीमित करते हैं, जैसे कि ostringstream
। का उपयोग करते हुए ostringstream
विशेष रूप से अपने कोड के पाठक को बताता है कि आप केवल <<
ऑपरेटर का उपयोग करना चाहते हैं , अनिवार्य रूप से। यह फ़ंक्शन एक पूर्णांक को स्ट्रिंग में बदलने के लिए विशेष रूप से आवश्यक है। अधिक विस्तृत चर्चा के लिए इस प्रश्न को देखें ।
#include <sstream>
#include <string>
int main() {
int x = 5;
std::ostringstream stream;
stream << x;
std::string x_str = stream.str();
return 0;
}
रनटाइम के लिए, ostringstream
ऑपरेशन लगभग 71 माइक्रोसेकंड (मेरी मशीन पर) लेता है, और फिर बाद में तेजी से गति करता है यदि अनावश्यक रूप से किया जाता है, लेकिन पिछले कार्यों जितना नहीं ।
बेशक अन्य विकल्प भी हैं, और आप इनमें से किसी एक को अपने स्वयं के फ़ंक्शन में भी लपेट सकते हैं, लेकिन यह कुछ लोकप्रिय लोगों को एक विश्लेषणात्मक रूप प्रदान करता है।