Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

การเรียนรู้ฟังก์ชัน Itoa ใน C:คู่มือปฏิบัติ

การเรียนรู้ฟังก์ชัน Itoa ใน C:คู่มือปฏิบัติ

ภาษาโปรแกรม C เปิดตัวเมื่อห้าทศวรรษที่แล้ว ตั้งแต่นั้นมา ก็ได้รับความนิยมอย่างมากในโลกการเขียนโปรแกรม มีความโดดเด่นในภาษาอื่นๆ เนื่องจากคุณสมบัติต่างๆ รวมถึงความเรียบง่ายเชิงโครงสร้าง ฟังก์ชัน การพกพา การจัดการหน่วยความจำที่มีประสิทธิภาพ ฯลฯ แม้จะมีคุณสมบัติอื่นๆ มากมาย แต่ฟังก์ชันใน C ก็เป็นทรัพย์สินที่โดดเด่นที่สุดที่ช่วยเหลือผู้ใช้จำนวนมากในการเขียนส่วนย่อยโค้ดที่มีประสิทธิภาพ

นอกจากนี้ itoa ยังเป็นฟังก์ชันที่ไม่ได้มาตรฐานที่ใช้กันอย่างแพร่หลายซึ่งทำหน้าที่เป็นตัวแปลงชนิดข้อมูล ใช้ประเภทข้อมูล int เป็นอินพุตและแปลงเป็นสตริง อย่างไรก็ตาม หลายท่านไม่ทราบถึงการใช้งานของมัน ดังนั้น คู่มือนี้จะอธิบายวิธีใช้ฟังก์ชัน itoa ใน C อย่างกระชับโดยไม่ต้องยุ่งยาก

เริ่มต้นด้วยพื้นฐาน ต่อไปนี้เป็นไวยากรณ์ง่ายๆ สำหรับฟังก์ชัน itoa:

int main() {

    จำนวน int =12345;
    ถ่าน STR [20];
    itoa(ตัวเลข, str, 10);
    printf("จำนวนเต็ม:%d\nString:%s\n", num, str);
    กลับ 0;

ในโปรแกรมที่กำหนดมีรายละเอียดดังนี้:

  1. num คือจำนวนเต็ม
  2. str คืออักขระ
  3. 10 คือเสียงเบส

ตอนนี้ เรามาก้าวไปข้างหน้า เขียนโปรแกรม และใช้ฟังก์ชัน itoa กัน ตัวอย่างเช่น เราจำเป็นต้องเขียนโปรแกรมเพื่อเปลี่ยนตัวเลขที่ป้อนลงในสตริง

#รวม

#รวม

เป็นโมฆะ itoa (int num, char *str, int base) {

    อินท์ i =0;
    int เป็นลบ =0;

    ถ้า (หมายเลข ==0) {
        str[i++] ='0';
        str[i] ='\0';
        กลับ;
   

    ถ้า (หมายเลข <0 &&ฐาน !=10) {

        เป็นลบ =1;
        หมายเลข =-หมายเลข;
   

    ในขณะที่ (หมายเลข !=0) {
        int rem =จำนวน % ฐาน;

        str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';

        num =หมายเลข / ฐาน;
   

    ถ้า (เป็นลบ &&ฐาน ==10)
        str[i++] ='-';

    str[i] ='\0';

    int เริ่มต้น =0;
    สิ้นสุดเจตนา =i - 1;

    ในขณะที่ (เริ่มต้น <สิ้นสุด) {

        ถ่านอุณหภูมิ =str [เริ่มต้น];
        str[เริ่มต้น] =str[สิ้นสุด];
        STR[สิ้นสุด] =อุณหภูมิ;
        เริ่ม++;
        จบ--;
    }

int หลัก() {
    หมายเลข int;
    printf("ใส่จำนวนเต็ม:");
   
    ถ้า (scanf("%d", &num) !=1) {
        fprintf(stderr, "ข้อมูลไม่ถูกต้อง กรุณากรอกจำนวนเต็ม\n");
        กลับ EXIT_FAILURE;
   

    int max_size =snprintf(โมฆะ, 0, "%d", num) + 1;
    ถ่าน *str =(ถ่าน *)malloc(max_size);

    ถ้า (str ==NULL) {
        fprintf(stderr, "การจัดสรรหน่วยความจำล้มเหลว\n");
        กลับ EXIT_FAILURE;
   

    itoa(หมายเลข, str, 10);

    printf("จำนวนเต็ม:%d\nString:%s\n", num, str);

    ฟรี(str);

    กลับ 0;

ในโปรแกรมก่อนหน้านี้ itoa (int num, char *str, int base) คือฟังก์ชัน itoa นอกจากนี้ ไวยากรณ์ต่อไปนี้จะกำหนดศูนย์ให้กับผลลัพธ์โดยตรงเมื่อหมายเลขอินพุตเป็นศูนย์ด้วย:

ถ้า (หมายเลข ==0) {

    str[i++] ='0';
    str[i] ='\0';
    กลับ;

เมื่อหมายเลขอินพุตเป็นลบและฐานไม่ใช่ 10 บรรทัดโปรแกรมต่อไปนี้จะตั้งค่าแฟล็กลบ:

ถ้า (หมายเลข <0 &&ฐาน !=10) {

    เป็นลบ =1;
    หมายเลข =-หมายเลข;

การวนซ้ำต่อไปนี้จะประมวลผลตัวเลขทั้งหมดและแปลงเป็นอักขระที่เกี่ยวข้อง ดังนั้น สำหรับฐานที่มากกว่า 10 โปรแกรมจะใช้ตัวอักษร “a” ถึง “f” สำหรับตัวเลข 10 ถึง 15

ในขณะที่ (หมายเลข !=0) {

    int rem =จำนวน % ฐาน;

    str[i++] =(rem> 9) ? (rem - 10) + 'a' :rem + '0';

    num =หมายเลข / ฐาน;
   

เมื่อตัวเลขเดิมเป็นลบและฐานคือ 10 โปรแกรมจะเพิ่มเครื่องหมายลบต่อท้ายสตริงผลลัพธ์

ถ้า (เป็นลบ &&ฐาน ==10)

    str[i++] ='-';

บรรทัดต่อไปนี้จะยุติสตริงผลลัพธ์แล้วย้อนกลับเมื่อได้รับตัวเลขในลำดับย้อนกลับระหว่างกระบวนการแปลง:

str[i] ='\0';

// ย้อนกลับสตริง

int เริ่มต้น =0;

สิ้นสุดเจตนา =i - 1;

ในขณะที่ (เริ่มต้น <สิ้นสุด) {

    ถ่านอุณหภูมิ =str [เริ่มต้น];
    str[เริ่มต้น] =str[สิ้นสุด];
    STR[สิ้นสุด] =อุณหภูมิ;
    เริ่ม++;
    สิ้นสุด--;

ดังนั้นโปรแกรมจึงรับจำนวนเต็มเป็นอินพุตและจัดสรรหน่วยความจำสำหรับการแสดงสตริง หลังจากนั้นจะเรียก itoa เพื่อแปลงจำนวนเต็มเป็นสตริงและพิมพ์จำนวนเต็มดั้งเดิม ในที่สุดก็ทำให้หน่วยความจำที่จัดสรรว่างมากขึ้น ตัวอย่างเช่น ให้ตัวเลขแก่โปรแกรม:

การเรียนรู้ฟังก์ชัน Itoa ใน C:คู่มือปฏิบัติ

อย่างไรก็ตาม หากคุณป้อนตัวเลขที่ไม่ใช่จำนวนเต็ม โปรแกรมจะแสดงผลลัพธ์ดังต่อไปนี้:

การเรียนรู้ฟังก์ชัน Itoa ใน C:คู่มือปฏิบัติ

บทสรุป

นี่คือวิธีที่คุณสามารถนำไปใช้และใช้ฟังก์ชัน itoa ใน C ได้อย่างง่ายดาย เราใช้ตัวอย่างโดยละเอียดที่มีหลายฟังก์ชันในการแปลงจำนวนเต็มเป็นสตริง โปรดจำไว้ว่า นี่เป็นเพียงตัวอย่างเท่านั้น แต่คุณสามารถรวมฟังก์ชัน itoa เข้ากับฟังก์ชันต่างๆ เพื่อเขียนโปรแกรมที่น่าทึ่งได้

เกี่ยวกับผู้เขียน

การเรียนรู้ฟังก์ชัน Itoa ใน C:คู่มือปฏิบัติ

ประทีก จังกิด

ผู้ใช้ Linux ที่หลงใหลด้วยเหตุผลส่วนตัวและทางอาชีพ ชอบสำรวจสิ่งใหม่ๆ ในโลกของ Linux อยู่เสมอ และแบ่งปันกับผู้อ่านของฉัน