अंतिम अद्यतन:2026-10-12
C++ string को int में बदलना¶
निजी public account:

सबसे पहले solutions प्रस्तावित करते हैं:
- atoi
- strtol
- stoi
इनमें क्या अंतर है? नीचे test करके तुलना करते हैं।
C भाषा शैली के functions
atoi और strtol की तुलना:
आउटपुट:
ये दोनों functions string की शुरुआत से digits या plus/minus sign या decimal point ढूंढते हैं, और किसी invalid character पर पहुंचते ही रुक जाते हैं।
इसलिए ऊपर वाले s character पर पहुंचते ही आउटपुट बंद हो जाता है, पहले ही समाप्त हो जाता है, यानी जब आपकी string digits वाली नहीं है, या decimal point जैसे non-digit characters हैं, तो कोई exception नहीं आता! सीधे 0 आउटपुट हो जाता है।
उदाहरण के लिए:
आउटपुट:
strtol, atoi की तुलना में कई base conversions को सपोर्ट करता है, जैसे base 8 आदि
उदाहरण के लिए:
C++ शैली
C++ में int में बदलने के लिए stoi का उपयोग किया जा सकता है, इस function की पिछले दोनों की तुलना में सबसे बड़ी खासियत है: exceptions!
हम जानते हैं कि C++, C भाषा की तुलना में exceptions की सुविधा देता है, यही इस function की C++ में सबसे उल्लेखनीय क्षमता है।
उदाहरण के लिए:
string str1 = "asq,";
// int c = stoi(str1); // 报异常
string str2 = "12312";
int c = stoi(str2); // ok
cout << c << endl;
exception इस प्रकार है:
स्वयं परिभाषित
यानी खुद ही लिख लेते हैं, इस प्रकार:
int stringToInt(const string &s) {
int v;
stringstream ss;
ss << s;
ss >> v;
return v;
}
int main() {
int i = stringToInt("2.3");
cout<<i<<endl;
}
संबंधित विषय¶
- Bazel से C++ प्रोजेक्ट बिल्ड करना | C++那些事
- Bazel और LLDB संयुक्त डिबगिंग | C++那些事
- CMake की शुरुआत और व्यवहार | C++那些事
- Conan C++ पैकेज मैनेजर की शुरुआत | C++那些事
- C++ Insights कंपाइल-टाइम अवलोकन | C++那些事
- C++ Jupyter Notebook इंटरैक्शन | C++那些事
- C++ dbg-macro डीबगिंग मैक्रो | C++那些事
- GCC कंपाइलेशन विकल्पों की विस्तृत जानकारी | C++那些事
- GDB से C++ प्रोग्राम डीबग करना | C++那些事
- GDB Python एक्सटेंशन डीबगिंग | C++那些事