दिलचस्प पोस्ट
अजगर में तार पर धूमिल क्या यह आत्म प्रारंभिक मान्य है? हॉवर के बाद माउस को एनीमेशन पर वापस कैसे जाना चाहिए क्या मॉलोक धागा सुरक्षित है? मैं asp.net में क्विकस्ट्रिंग से सी # का उपयोग कैसे कर सकता हूँ? जावा सिंक्रनाइज़ेशन प्रणाली की गणना करें.कुछ प्रेसिजन और स्केल एजेक्स कॉल से डेटा के साथ कोणीय 2 बूटस्ट्रैप नेस्टेड दस्तावेज़ों द्वारा मंगोब्ड एग्रीगेशन फ्रेमवर्क मैच Xcode चेतावनी को हटाने के लिए कैसे करें एप्पल मैक- ओ लिंकर चेतावनी 'सूचक पते पर गठबंधन नहीं है स्ट्रिंग को एक नई लाइन पर हर बार लिखना कैसे पीएचपी उत्पन्न चंचल प्रतिक्रिया बनाने के लिए क्या MySQL FIND_IN_SET या समकक्ष सूचकांकों का उपयोग करने के लिए किया जा सकता है? क्या आप JSON ऑब्जेक्ट में एक पीछे वाले अल्पविराम का उपयोग कर सकते हैं? क्या आखिरकार ब्लॉक हमेशा चलता रहता है?

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

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

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

Solutions Collecting From Web of "एक एकल को एक 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; } }