C++ में int को string में बदलना: पूरी गाइड उदाहरणों के साथ

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C++ में "Int to String": यह सवाल अनुभवी डेवलपर्स को भी क्यों परेशान करता है?

\n

एक स्थिति की कल्पना करें: आप C++ में एक प्रोग्राम लिख रहे हैं जिसे स्क्रीन पर एक नंबर दिखाना है और फिर उसमें टेक्स्ट जोड़ना है — जैसे, "परिणाम: 42"। या फिर आपको किसी यूज़र का ID (int) JSON फ़ाइल में स्ट्रिंग के रूप में सेव करना है। लगता है कितना आसान है? लेकिन समस्या यह है कि C++ में आप सीधे string s = 42; नहीं लिख सकते। कंपाइलर एरर देगा।

\n

"How can I convert int to string in C++?" — यह सवाल Stack Overflow पर सबसे लोकप्रिय में से एक है (लाखों व्यूज़)। और यह कोई संयोग नहीं है। Python या JavaScript के विपरीत, जहाँ सब कुछ "जादुई रूप से कन्वर्ट" हो जाता है, C++ में टाइप कन्वर्ज़न स्पष्ट रूप से करना पड़ता है। लेकिन चिंता न करें! इस लेख में हम 5 सिद्ध तरीकों पर चर्चा करेंगे, क्लासिक से लेकर आधुनिक C++20 तक। आप जानेंगे कि कौन सा तरीका सबसे तेज़ है, कौन सा सबसे आसान है, और कब किसका उपयोग करना चाहिए।

\n

चलिए शुरू करते हैं!

\n\n

तरीका #1: std::to_string — आधुनिक और सरल (C++11 और उसके बाद)

\n

C++11 से शुरू करके, स्टैंडर्ड लाइब्रेरी में std::to_string फ़ंक्शन आया। यह C++ में int को string में बदलने का सबसे आसान और पढ़ने योग्य तरीका है।

\n
#include <iostream>\n#include <string>\n\nint main() {\n    int number = 2024;\n    std::string str = std::to_string(number);\n    std::cout << "स्ट्रिंग: " << str << std::endl;  // आउटपुट: स्ट्रिंग: 2024\n    return 0;\n}
\n

फायदे:

\n
    \n
  • छोटा और स्पष्ट — कोड की एक लाइन
  • \n
  • int, long, float, double और अन्य न्यूमेरिक टाइप्स को सपोर्ट करता है
  • \n
  • अतिरिक्त लाइब्रेरी (सिर्फ <string> के अलावा) की ज़रूरत नहीं
  • \n
\n

नुकसान:

\n
    \n
  • फ़ॉर्मेटिंग पर कोई नियंत्रण नहीं (अंकों की संख्या, लीडिंग ज़ीरो)
  • \n
  • लाखों बार कॉल करने पर लो-लेवल तरीकों से धीमा
  • \n
\n

कब उपयोग करें: 90% मामलों में। सामान्य कार्यों के लिए जहाँ विशिष्ट आउटपुट फ़ॉर्मेट की ज़रूरत नहीं है, std::to_string सबसे अच्छा विकल्प है।

\n\n

तरीका #2: std::stringstream — लचीला, जैसे स्विस आर्मी नाइफ

\n

अगर आपको सिर्फ नंबर कन्वर्ट नहीं करना, बल्कि उसे फ़ॉर्मेट भी करना है (स्पेस जोड़ना, बेस बदलना), तो std::stringstream काम आता है। यह <sstream> लाइब्रेरी का एक क्लास है जो "स्मार्ट स्ट्रिंग" की तरह काम करता है।

\n
#include <iostream>\n#include <sstream>\n#include <string>\n\nint main() {\n    int number = 255;\n    std::stringstream ss;\n    ss << "मान: " << number << " (हेक्साडेसिमल: " << std::hex << number << ")";\n    std::string result = ss.str();\n    std::cout << result << std::endl;\n    // आउटपुट: मान: 255 (हेक्साडेसिमल: ff)\n    return 0;\n}
\n

फायदे:

\n
    \n
  • फ़ॉर्मेटिंग पर पूरा नियंत्रण (std::hex, std::oct, std::setw, std::setprecision)
  • \n
  • स्ट्रिंग और नंबर को "ऑन-द-फ्लाई" जोड़ सकते हैं
  • \n
\n

नुकसान:

\n
    \n
  • stringstream ऑब्जेक्ट बनाने के कारण std::to_string से धीमा
  • \n
  • साधारण कन्वर्ज़न के लिए ज़्यादा कोड चाहिए
  • \n
\n

कब उपयोग करें: जब जटिल फ़ॉर्मेटिंग या अलग-अलग नंबर सिस्टम में कन्वर्ज़न की ज़रूरत हो।

\n\n

तरीका #3: sprintf और snprintf — C का पुराना लेकिन भरोसेमंद तरीका

\n

पुराना लेकिन भरोसेमंद तरीका, जो C भाषा से आया है। sprintf फ़ंक्शन फ़ॉर्मेटेड स्ट्रिंग को char array में लिखता है। C++ में भी इसका उपयोग किया जा सकता है, लेकिन बफ़र ओवरफ़्लो से सावधान रहें।

\n
#include <iostream>\n#include <cstdio>  // sprintf के लिए\n#include <cstring> // strlen के लिए\n\nint main() {\n    int number = 42;\n    char buffer[50];\n    sprintf(buffer, "%d", number);\n    std::string str(buffer);\n    std::cout << "परिणाम: " << str << std::endl;\n    return 0;\n}
\n

महत्वपूर्ण:

ब्लॉग

पुस्तक अनुशंसाएँ