दिलचस्प पोस्ट
सामान्य प्रकार या पद्धति में पैरामीटर 'टी' के रूप में इसका उपयोग करने के लिए टाइप एक संदर्भ प्रकार होना चाहिए जावा का उपयोग कर मैं एक मल्टीपार्ट / फॉर्म-डाटा पोस्ट अनुरोध कैसे कर सकता हूं? आईओएस: एक UIImage के रंगों को बदलना जावास्क्रिप्ट में कब और क्यों लौट आए? क्या UIScrollView सामग्री Inset संपत्ति के लिए है? MySQL अद्यतन क्वेरी पर 'फ़ील्ड सूची' त्रुटि में अज्ञात स्तंभ चेनिंग .bind () जावास्क्रिप्ट में कॉल अप्रत्याशित परिणाम? गैर अवरुद्ध कंसोल इनपुट C ++ फ़ाइल से आरएसए सार्वजनिक कुंजी लोड करें jqGrid – फॉर्म_इडिट निर्माण को कैसे संशोधित करें? हंडोप बाइनरी पथ में विजुअलिल बाइनरी का पता लगाने में असफल फ़ंक्शन की तुलना के साथ सॉर्ट फ़ंक्शन जावास्क्रिप्ट में कैसे काम करता है क्या मैं प्रोग्राम को Google क्रोम एक्सटेंशन से devtools खोल सकता / सकती हूं? कॉम्बो बॉक्स: एक आइटम के लिए टेक्स्ट और वैल्यू जोड़ना (कोई बाध्यकारी स्रोत नहीं) DOCTYPE क्या है?

एक एकल को एक int में परिवर्तित कैसे करें

मेरे पास अंकों की एक स्ट्रिंग है, जैसे "123456789", और मुझे उनमें से हर एक को गणना में उपयोग करने के लिए निकालने की आवश्यकता है। मैं निश्चित रूप से इंडेक्स के प्रत्येक चर तक पहुंच सकता हूँ, लेकिन मैं इसे कैसे एक इंट में परिवर्तित कर सकता हूं?

मैं atoi () में देखा है, लेकिन यह तर्क के रूप में एक स्ट्रिंग लेता है इसलिए मुझे प्रत्येक अक्षर को स्ट्रिंग में परिवर्तित करना होगा और फिर उस पर atoi को कॉल करना होगा। क्या कोई बेहतर तरीका है?

वेब के समाधान से एकत्रित समाधान "एक एकल को एक int में परिवर्तित कैसे करें"

आप इस तथ्य का उपयोग कर सकते हैं कि अंक के लिए वर्ण एन्कोडिंग 48 से ('0') से 57 ('9' के लिए) के क्रम में हैं। यह एएससीआईआई, यूटीएफ-एक्स और व्यावहारिक रूप से अन्य सभी एन्कोडिंग के लिए सही है ( इस पर अधिक के लिए नीचे दी गई टिप्पणियां देखें )।

इसलिए किसी भी अंक के लिए पूर्णांक मान अंक कम '0' (या 48) है।

char c = '1'; int i = c - '0'; // i is now equal to 1, not '1' 

के लिए पर्याय है

 char c = '1'; int i = c - 48; // i is now equal to 1, not '1' 

हालांकि मुझे पहले c - '0' कहीं अधिक पठनीय लगता है।

 #define toDigit(c) (c-'0') 

या आप "सही" विधि का प्रयोग कर सकते हैं, जो आपके मूल एटीआई दृष्टिकोण के समान है, लेकिन इसके बजाय std :: stringstream के साथ। यह इनपुट के साथ ही स्ट्रिंग के रूप में वर्णों के साथ काम करना चाहिए। (boost :: lexical_cast एक अधिक सुविधाजनक वाक्यविन्यास के लिए एक और विकल्प है)

(एटोई एक पुरानी सी फ़ंक्शन है, और आमतौर पर अधिक लचीला और टाइपअफ सी ++ समकक्ष जहां संभव हो सकता है का उपयोग करने की सिफारिश की जाती है। std :: stringstream स्ट्रिंग्स को और रूपांतरण को शामिल करता है)

आप atoi () फ़ंक्शन का उपयोग कर सकते हैं

 #include <stdlib.h> #include <stdio.h> int main(int argc, char* argv[]){ int num ; num = atoi(argv[1]); printf("\n%d", num); } 

दिए गए उत्तर महान हैं, जब तक आप केवल अरबी अंकों को संभालते हैं, और एक एन्कोडिंग में काम कर रहे हैं, जहां उन अंकों अनुक्रमिक हैं, और उसी स्थान पर एएससीआईआई के रूप में।

यह लगभग हमेशा मामला है।

अगर ऐसा नहीं है तो आपको आपकी मदद करने के लिए एक उचित पुस्तकालय की आवश्यकता है

आइए ICU से शुरू करें

  1. पहले बाइट-स्ट्रिंग को यूनिकोड स्ट्रिंग में कनवर्ट करें। (रीडर के लिए एक कवायद के रूप में बाएं)
  2. फिर प्रत्येक चरित्र को देखने के लिए uchar.h का उपयोग करें।
  3. अगर हम चरित्र UBool u_isdigit (UChar32 c)
  4. तो मान int32_t u_charDigitValue ( UChar32 c )

या हो सकता है कि आईसीयू में आपके लिए यह करने के लिए कुछ फ़ंक्शन हैं – मैंने इसे विस्तार से नहीं देखा है

 #include<iostream> #include<stdlib> using namespace std; void main() { char ch; int x; cin >> ch; x = char (ar[1]); cout << x; } 

इस तरह से आप char को int और int को आसानी से कनवर्ट कर सकते हैं:

 int charToInt(char c) { int arr[]={0,1,2,3,4,5,6,7,8,9}; return arr[c-'0']; } 

यदि आप एन्कोडिंग के बारे में चिंतित हैं, तो आप हमेशा स्विच स्टेटमेंट का उपयोग कर सकते हैं।

बस उस प्रारूप के बारे में सावधान रहें, जो आप में बड़ी संख्या में रखते हैं। कुछ सिस्टम में पूर्णांक के लिए अधिकतम आकार 65,535 (32,767 हस्ताक्षरित) के बराबर है। अन्य सिस्टम, आपको 2,147,483,647 (या 4,294,967,295 अहस्ताक्षरित) मिले हैं

ऐसा करने के लिए निम्नलिखित तरीके से कोई समस्या है?

 int CharToInt(const char c) { switch (c) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; default: return 0; } }