تُستخدم الدالة itoa () لتحويل نوع بيانات int إلى نوع بيانات سلسلة في لغة C.
بناء الجملة -
char * itoa ( int value, char * str, int base );
يجب أن تكون السلسلة التي نضعها في الممر المؤقت كبيرة بما يكفي لاستيعاب الإخراج. نظرًا لأن قيم الجذر يمكن أن تكون OCTAL(0 - 7) أو DECIMAL(0 - 9) أو HEX(0 - 9, a - f). عندما يكون الجذر DECIMAL، تنتج itoa() -
(باطل) sprintf(buffer, '%d', n);
هنا، يقوم المخزن المؤقت بإرجاع سلسلة الأحرف.
عندما يكون الجذر هو OCTAL، تقوم itoa() بتنسيق العدد الصحيح 'n' إلى ثابت ثماني غير موقّع.
وعندما يكون الجذر HEX، يقوم itoa() بتنسيق العدد الصحيح 'n' إلى ثابت سداسي عشري غير موقّع.
ستتضمن القيمة السداسية العشرية حروفًا أبجدية صغيرة.
قيمة الإرجاع -
سيتم إرجاع مؤشر السلسلة. عندما نمرر وسيطة جذرية غير صالحة، سترجع الدالة NULL.
بديل متوافق مع المعايير -
- sprintf(str,'%d',value) - للتحويل إلى قاعدة عشرية.
- sprintf(str,'%x',value) - للتحويل إلى النظام السداسي العشري.
- sprintf(str,'%o',value) - للتحويل إلى قاعدة ثماني.
الخوارزمية:
Step 1: Take a number as argument Step 2: Create an empty string buffer to store result Step 3: Use sprintf() to convert number to string Step 4: End
شفرة -
#include #include #include char* itoa(int num, char* buffer, int base) { int current = 0; if (num == 0) { buffer[current++] = '0'; buffer[current] = ' '; return buffer; } int num_digits = 0; if (num <0) { if (base="=" 10) num_digits ++; buffer[current]="-" ; current num *="-1;" } else return null; +="(int)floor(log(num)" log(base)) 1; while (current < num_digits) int base_val="(int)" pow(base, num_digits-1-current); num_val="num" base_val; char value="num_val" '0'; -="base_val" num_val; buffer; main() a="123456;" buffer[256]; (itoa(a, buffer, !="NULL)" printf('input="%d," base="%d," buffer="%s '," a, 10, buffer); b="-2310;" (itoa(b, b, c="10;" (itoa(c, 2) c, 2, 0; pre> <p> <strong>Output</strong> </p> <pre> Input = 123456, base = 10, Buffer = 123456 Input = -2310, base = 10, Buffer = -2310 Input = 10, base = 2, Buffer = 1010 </pre> <img src="//techcodeview.com/img/c-tutorial/58/itoa-function-c.webp" alt="itoa Function in C"> <h4>Note: But we have to keep in mind that while we are compiling with gcc, we have to use the '-lm' flag to include the math library.</h4> <p> <strong>gcc -o test.out test.c -lm</strong> </p> <hr></0)>
ملاحظة: ولكن علينا أن نضع في اعتبارنا أنه أثناء الترجمة باستخدام gcc، يتعين علينا استخدام العلامة '-lm' لتضمين مكتبة الرياضيات.
دول مجلس التعاون الخليجي -o test.out test.c -lm
0)>