2009-05-15 10 views
84

संभावित डुप्लिकेट:
How to convert a single char into an int
Character to integer in Cसी में चार से पूर्णांक को कैसे परिवर्तित करें?

शरीर के किसी भी मुझे बताओ कैसे कन्वर्ट करने के लिए एक charint लिए कर सकते हैं?

char c[]={'1',':','3'}; 

int i=int(c[0]); 

printf("%d",i); 

जब मैं यह कोशिश यह 49

+0

'int x = -1 करना सबसे आसान है; अगर (isdigit (सी)) {x = सी - 48; } ' – FedericoCapaldo

उत्तर

35

देता मानक समारोह atoi() तुम क्या चाहते हो जाने की संभावना होगी।

एक साधारण उदाहरण "atoi" का उपयोग:

#include <unistd.h> 

int main(int argc, char *argv[]) 
{ 
    int useconds = atoi(argv[1]); 
    usleep(useconds); 
} 
+11

atoi एक char * एक char नहीं लेता है। –

+1

क्या यह सिर्फ अर्थशास्त्र नहीं है? एक char * एक char भी देता है, बस पता पास करें। लेकिन ठीक है, मैंने विनिर्देशों को नहीं देखा, मेरे सी को जंगली तरह से मिलना शुरू हो रहा है। –

+45

यदि आप किसी नल टर्मिनेटेड स्ट्रिंग की अपेक्षा रखने वाले कुछ को पास करते हैं, तो आप चोट की दुनिया में होंगे। –

144

पुराने दिनों में, जब हम यह मान सकते हैं कि अधिकांश कंप्यूटर ASCII इस्तेमाल किया है, हम बस करना होगा

int i = c[0] - '0'; 

लेकिन इन दिनों में यूनिकोड का, यह एक अच्छा विचार नहीं है। यदि आपका कोड गैर-ASCII कंप्यूटर पर चलाना था तो यह कभी अच्छा विचार नहीं था।

संपादित करें: हालांकि यह हैकिश दिखता है, जाहिर है यह काम करने के मानक द्वारा गारंटीकृत है। धन्यवाद @ एरविकर।

+0

काम नहीं कर रहा है। मुझे 1 के रूप में उत्तर की उम्मीद है, लेकिन यह 6 अंकों की संख्या का कचरा देता है मुझे लगता है कि – Cute

+0

क्षमा करें, मैंने इसे सी [0] में बदल दिया है क्योंकि उदाहरण कोड का उपयोग करता है। –

+0

यूनिकोड एक चर चर में किसी अंक के प्रतिनिधित्व को कैसे प्रभावित कर सकता है? –

संबंधित मुद्दे