संपादित करें: क्षमा करें, मुझे याद रखना चाहिए कि यह मशीन निश्चित रूप से गैर-मानक है, libc
शैक्षिक उद्देश्यों के लिए विभिन्न गैर-मानक कार्यान्वयनों में प्लग की गई है;;
जैसा itoa()
कि वास्तव में गैर-मानक है, जैसा कि कई सहायक टिप्पणीकारों द्वारा उल्लेख किया गया है, इसका उपयोग करना सबसे अच्छा है sprintf(target_string,"%d",source_int)
या (अभी तक बेहतर है, क्योंकि यह बफर ओवरफ्लो से सुरक्षित है) snprintf(target_string, size_of_target_string_in_bytes, "%d", source_int)
। मुझे पता है कि यह काफी संक्षिप्त या शांत नहीं है itoa()
, लेकिन कम से कम आप एक बार लिख सकते हैं, हर जगह चला सकते हैं (tm ;-))
यहाँ पुराना (संपादित) उत्तर है
आप यह बताते हुए सही हैं कि डिफ़ॉल्ट gcc libc
में itoa()
कई अन्य प्लेटफार्मों की तरह शामिल नहीं है, क्योंकि यह तकनीकी रूप से मानक का हिस्सा नहीं है। थोड़ी और जानकारी के लिए यहाँ देखें । ध्यान दें कि आपको करना है
#include <stdlib.h>
बेशक आप यह पहले से ही जानते हैं, क्योंकि आप लिनक्स पर किसी अन्य प्लेटफ़ॉर्म पर इसका उपयोग करने के बाद उपयोग करना चाहते थे itoa()
, लेकिन ... कोड (ऊपर दिए गए लिंक से चुराया गया) इस तरह दिखेगा:
उदाहरण
/* itoa example */
#include <stdio.h>
#include <stdlib.h>
int main ()
{
int i;
char buffer [33];
printf ("Enter a number: ");
scanf ("%d",&i);
itoa (i,buffer,10);
printf ("decimal: %s\n",buffer);
itoa (i,buffer,16);
printf ("hexadecimal: %s\n",buffer);
itoa (i,buffer,2);
printf ("binary: %s\n",buffer);
return 0;
}
आउटपुट:
Enter a number: 1750
decimal: 1750
hexadecimal: 6d6
binary: 11011010110
उम्मीद है की यह मदद करेगा!
sprintf(str, "%d", num)
? क्या यह बहुत धीमी हैitoa
?