การ Convert ระหว่าง char* กับ int ใน C จัดทำโดย : langjuko พิมพ์


การ Convert ระหว่าง char* กับ int ใน C

บทความนี้ จะมาแนะนําการใช้ฟังก์ชั่น 2 ตัวใน C กัน มันถูกประกาศอยู่ใน stdlib.h เป็นฟังก์ชั่นครับ ไม่ใช่ฟังก์ชั่นตัวใหม่อะไรในภาษา C++ นะครับ มันยังอยู่ในขอบเขตของการศึกษา C ได้.... มันเป็นฟังก์ชั่นในการแปลงจาก char* เป็น int และแปลงจาก int เป็น char *

กาลครั้งหนึ่ง สมาชิกท่านนึงได้ยิงถามมาว่า เวลารับค่าในเกมเนี่ย เราสร้าง GUI ที่ใช้ Text Box เวลารับค่าตัวเลขเข้ามา มันจะเป็น char * คือ เอา char num[30]; เข้ามาเก็บค่าตัวเลข แต่เมื่อเราจะเอาค่าตัวเลขนี้ไปใช้ประมวลผล ไปคํานวณ นั่นล่ะครับ จะทําอย่างไร เราจะต้อง convert จาก char[] ให้เป็น int ซึ่งจะใช้ฟังก์ชั่นที่ชื่อว่า อะต๊อย (atoi) แต่ถ้าจะเปลี่ยนจาก int เป็น char[] ให้ใช้ อิเต๊า (itoa) ทั้งสองฟังก์ชั่นมีรายละเอียดดังนี้ครับ (จาก MSDN)

char *_itoa( int value, char *string, int radix );

int atoi( const char *string );

จากข้างต้น itoa เป็นการแปลงจาก int -> char* แต่ถ้า atoi จะแปลงจาก char* -> int แต่ก็ยังมีอีกตัว ชื่อว่า

double atof( const char *string );

อันนี้เป็นการแปลงให้เป็น float ครับ (char[] -> float)

เราจะใช้ก็ต่อเมื่อ..... เรามีตัวเลขอยู่ใน char[] และเราต้องการเอามันมาประมวลผล นั่นล่ะครับ เรียกใช้มันซะ ลองดูตัวอย่าง code ต่อไปนี้

ตัวอย่างการใช้ atoi แปลงข้อความ 1234 ให้เป็น int

int num=atoi("1234");
num++;
printf("Num = %d",num);

ตัวอย่างการใช้ itoa แปลงตัวเลข 590 ให้เป็น char และแสดงผลออกมาโดยหาขนาดของ string มาด้วยล่ะ

int n=590;
char buff[50];
itoa(n,buff,10);
printf("data=%s (%d)\n",buff,strlen(buff));

คําสั่ง itoa นั้น พารามิเตอร์ตัวสุดท้ายก็คือฐานครับ ว่าจะเป็นเลขฐาน 10 ฐาน 2 หรือฐาน 16 ก็ใส่ลงไปครับ

คุณอาจสนใจ
การส่ง mail จาก Flash
Tung (47,125 - 06 ธ.ค. 50)
การเปลี่ยนสีตัวอักษร
หมูขุน (18,659 - 20 มี.ค. 50)
ลบข้อความที่แสดงเวอร์ชันของวินโดวส์ออกจากหน้าจอ
เว็บไทยดีดี (13,777 - 29 ก.ย. 50)
เครื่องมือกลุ่ม Drawing
หมูขุน (15,258 - 04 ก.พ. 50)
อยากให้เมาส์หน้าจอได้เร็ว ๆ ต้องทำอย่างไร XP
เว็บไทยดีดี (15,160 - 27 ต.ค. 50)
การทำ Magic Wand วิ่งตามเมาส์
Mr.GuruZ (54,171 - 04 มิ.ย. 49)
ป้องกันผู้ใช้กรอก E-mail มั่วด้วย Java
Mr.GuruZ (34,198 - 03 มิ.ย. 49)
การ์ตูน Flash อย่างง่ายตอนที่ 1 (การร่างโครงภาพ)
Black-Hawk (153,568 - 18 ม.ค. 51)