C ++ 98 සඳහා , විකල්ප කිහිපයක් තිබේ:
boost/lexical_cast
බූස්ට් යනු සී ++ පුස්තකාලයේ කොටසක් නොවේ, නමුත් බොහෝ ප්රයෝජනවත් පුස්තකාල දිගු අඩංගු වේ.
මෙම 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
සී සම්මත පුස්තකාල ශ්රිතයක් වන අතර එය සී නූල් මත ක්රියා කරයි.
Printf හි ආකෘතිය භාවිතා කර ඇත්නම් මුද්රණය කරනු ලබන එකම පෙළක් සහිත නූලක් රචනා කරයි, නමුත් මුද්රණය කරනවා වෙනුවට අන්තර්ගතය str මඟින් පෙන්වා ඇති බෆරයේ C string ලෙස ගබඩා වේ.
- 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
පූර්ණ සංඛ්යා නූල් බවට පරිවර්තනය කිරීමේ සී ++ පුස්තකාලයේ ප්රධාන ක්රමය මෙය වන අතර අනෙක් අතට. stringstream
ප්රවාහයට අපේක්ෂිත භාවිතය තවදුරටත් සීමා කිරීමට සමාන සහෝදර කාර්යයන් ඇත ostringstream
. භාවිතා ostringstream
කිරීම ඔබේ කේතය පා the කයාට පවසන්නේ ඔබ <<
ක්රියාකරු භාවිතා කිරීමට පමණක් අදහස් කරන බවයි. මෙම ශ්රිතය පූර්ණ සංඛ්යාවක් නූලකට පරිවර්තනය කිරීම සඳහා විශේෂයෙන් අවශ්ය වේ. වඩාත් සවිස්තරාත්මක සාකච්ඡාවක් සඳහා මෙම ප්රශ්නය බලන්න .
#include <sstream>
#include <string>
int main() {
int x = 5;
std::ostringstream stream;
stream << x;
std::string x_str = stream.str();
return 0;
}
ධාවන කාලය සම්බන්ධයෙන් ගත් කල, ostringstream
මෙහෙයුම මයික්රෝ තත්පර 71 ක් (මගේ යන්ත්රය මත) ගත වන අතර, පසුව අතිරික්තව සිදු කළ හොත් සැලකිය යුතු වේගයකින් පසුව වේගවත් වේ, නමුත් පෙර කාර්යයන් තරම් නොවේ .
ඇත්ත වශයෙන්ම වෙනත් විකල්ප තිබේ, ඔබට මේවායින් එකක් ඔබේම ක්රියාකාරිත්වයට ඔතා ගත හැකිය, නමුත් මෙය සමහර ජනප්රිය ඒවා විශ්ලේෂණාත්මක පෙනුමක් ලබා දෙයි.