كيفية استخدام وظيفة Itoa في C

Kyfyt Astkhdam Wzyft Itoa Fy C



تم إطلاق لغة البرمجة C منذ أكثر من خمسة عقود. ومنذ ذلك الحين، اكتسب شعبية هائلة في عالم البرمجة. إنها تتفوق على اللغات الأخرى بسبب ميزاتها بما في ذلك البساطة الهيكلية، والوظائف، وقابلية النقل، وإدارة الذاكرة الفعالة، وما إلى ذلك. على الرغم من وجود ميزات أخرى متنوعة، فإن الوظائف في لغة C هي أبرز الأصول التي تساعد العديد من المستخدمين في كتابة مقتطفات التعليمات البرمجية القوية.

علاوة على ذلك، فإن itoa هي وظيفة غير قياسية مستخدمة على نطاق واسع وتعمل كمحول لنوع البيانات. يأخذ نوع البيانات int كمدخل ويحوله إلى سلسلة. ومع ذلك، فإن الكثير منكم لا يعرف استخدامه. لذلك، يشرح هذا الدليل بإيجاز كيفية استخدام الدالة itoa في لغة C دون أي متاعب.







كيفية استخدام وظيفة Itoa في C

هيا لنبدأ مع الأساسيات. فيما يلي بناء الجملة البسيط لوظيفة itoa:



كثافة العمليات رئيسي ( ) {

كثافة العمليات على واحد = 12345 ;
شار شارع [ عشرين ] ;
غرق ( على واحد , شارع , 10 ) ;
printf ( 'العدد الصحيح: %d سلاسل ' , على واحد , شارع ) ;
يعود 0 ;


}

وفي البرنامج المذكور التفاصيل هي كما يلي:



  1. num هو العدد الصحيح
  2. str هو الحرف
  3. 10 هو الجهير

الآن، دعونا نمضي قدمًا ونكتب برنامجًا وننفذ وظيفة itoa. على سبيل المثال، نحتاج إلى كتابة برنامج لتغيير الأرقام المدخلة في السلسلة.





#تشمل

#تشمل

فارغ غرق ( كثافة العمليات على واحد , شار * شارع , كثافة العمليات قاعدة ) {

كثافة العمليات أنا = 0 ;
كثافة العمليات isNegative = 0 ;

لو ( على واحد == 0 ) {
شارع [ أنا ++ ] = '0' ;
شارع [ أنا ] = ' \0 ' ;
يعود ;
}


لو ( على واحد < 0 && قاعدة != 10 ) {

isNegative = 1 ;
على واحد = - على واحد ;
}

بينما ( على واحد != 0 ) {
كثافة العمليات rem = على واحد % قاعدة ;

شارع [ أنا ++ ] = ( rem > 9 ) ؟ ( rem - 10 ) + 'أ' : rem + '0' ;

على واحد = على واحد / قاعدة ;
}

لو ( isNegative && قاعدة == 10 )
شارع [ أنا ++ ] = '-' ;

شارع [ أنا ] = ' \0 ' ;

كثافة العمليات يبدأ = 0 ;
كثافة العمليات نهاية = أنا - 1 ;


بينما ( يبدأ < نهاية ) {

شار درجة حرارة = شارع [ يبدأ ] ;
شارع [ يبدأ ] = شارع [ نهاية ] ;
شارع [ نهاية ] = درجة حرارة ;
يبدأ ++;
نهاية --;
}
}

كثافة العمليات رئيسي ( ) {
كثافة العمليات على واحد ;
printf ( 'أدخل عددًا صحيحًا:' ) ;

لو ( scanf ( '٪د' , & على واحد ) != 1 ) {
fprintf ( com.stderr , 'الإدخال غير صالح. الرجاء إدخال عدد صحيح. ' ) ;
يعود EXIT_FAILURE ;
}

كثافة العمليات اقصى حجم = snprintf ( باطل , 0 , '٪د' , على واحد ) + 1 ;
شار * شارع = ( شار * ) malloc ( اقصى حجم ) ;

لو ( شارع == باطل ) {
fprintf ( com.stderr , 'فشل تخصيص الذاكرة ' ) ;
يعود EXIT_FAILURE ;
}


غرق ( على واحد , شارع , 10 ) ;

printf ( 'العدد الصحيح: %d سلاسل ' , على واحد , شارع ) ;

حر ( شارع ) ;

يعود 0 ;


}

في البرنامج السابق، itoa (int num, char *str, int base) هي دالة itoa. علاوة على ذلك، فإن بناء الجملة التالي يعين الصفر مباشرة للنتيجة عندما يكون رقم الإدخال صفرًا أيضًا:

لو ( على واحد == 0 ) {

شارع [ أنا ++ ] = '0' ;
شارع [ أنا ] = ' \0 ' ;
يعود ;


}

عندما يكون رقم الإدخال سالبًا والقاعدة أيضًا ليست 10، ستقوم أسطر البرنامج التالية بتعيين العلامة السالبة:



لو ( على واحد < 0 && قاعدة != 10 ) {

isNegative = 1 ;
على واحد = - على واحد ;

تقوم الحلقة التالية بمعالجة كافة الأرقام وتحويلها إلى الحرف المقابل. وبالتالي، بالنسبة للقواعد التي تزيد عن 10، يستخدم البرنامج الحروف من 'a' إلى 'f' للأرقام من 10 إلى 15.

}

بينما ( على واحد != 0 ) {

كثافة العمليات rem = على واحد % قاعدة ;

شارع [ أنا ++ ] = ( rem > 9 ) ؟ ( rem - 10 ) + 'أ' : rem + '0' ;

على واحد = على واحد / قاعدة ;

}

عندما يكون الرقم سالبًا في الأصل وأساسه 10، سيقوم البرنامج بإلحاق الإشارة السالبة بسلسلة النتائج.

لو ( isNegative && قاعدة == 10 )

شارع [ أنا ++ ] = '-' ;

تنهي الأسطر التالية السلسلة الناتجة ثم تقوم بعكسها حيث يتم الحصول على الأرقام بترتيب عكسي أثناء عملية التحويل:

شارع [ أنا ] = ' \0 ' ;

// عكس السلسلة

كثافة العمليات يبدأ = 0 ;

كثافة العمليات نهاية = أنا - 1 ;

بينما ( يبدأ < نهاية ) {

شار درجة حرارة = شارع [ يبدأ ] ;
شارع [ يبدأ ] = شارع [ نهاية ] ;
شارع [ نهاية ] = درجة حرارة ;
يبدأ ++;
نهاية --;


}

ومن ثم، يأخذ البرنامج العدد الصحيح كمدخل ويخصص الذاكرة لتمثيل السلسلة. بعد ذلك، فإنه يستدعي itoa لتحويل العدد الصحيح إلى سلسلة ويطبع العدد الصحيح الأصلي. وأخيرا، فإنه يحرر الذاكرة المخصصة. على سبيل المثال، لنعطي رقماً للبرنامج:

ومع ذلك، إذا قمت بإدخال رقم غير صحيح، فسيظهر البرنامج النتيجة التالية:

خاتمة

هذه هي الطريقة التي يمكنك من خلالها تنفيذ واستخدام الدالة itoa في لغة C بسهولة. استخدمنا مثالًا تفصيليًا يحتوي على وظائف متعددة لتحويل العدد الصحيح إلى سلسلة. تذكر أنه مجرد مثال، ولكن يمكنك دمج وظيفة itoa مع وظائف مختلفة لكتابة برامج مذهلة.