ภาษาโปรแกรม C เปิดตัวเมื่อห้าทศวรรษที่แล้ว ตั้งแต่นั้นมา ก็ได้รับความนิยมอย่างมากในโลกการเขียนโปรแกรม มีความโดดเด่นในภาษาอื่นๆ เนื่องจากคุณสมบัติต่างๆ รวมถึงความเรียบง่ายเชิงโครงสร้าง ฟังก์ชัน การพกพา การจัดการหน่วยความจำที่มีประสิทธิภาพ ฯลฯ แม้จะมีคุณสมบัติอื่นๆ มากมาย แต่ฟังก์ชันใน C ก็เป็นทรัพย์สินที่โดดเด่นที่สุดที่ช่วยเหลือผู้ใช้จำนวนมากในการเขียนส่วนย่อยโค้ดที่มีประสิทธิภาพ
นอกจากนี้ itoa ยังเป็นฟังก์ชันที่ไม่ได้มาตรฐานที่ใช้กันอย่างแพร่หลายซึ่งทำหน้าที่เป็นตัวแปลงชนิดข้อมูล ใช้ประเภทข้อมูล int เป็นอินพุตและแปลงเป็นสตริง อย่างไรก็ตาม หลายท่านไม่ทราบถึงการใช้งานของมัน ดังนั้น คู่มือนี้จะอธิบายวิธีใช้ฟังก์ชัน itoa ใน C อย่างกระชับโดยไม่ต้องยุ่งยาก
เริ่มต้นด้วยพื้นฐาน ต่อไปนี้เป็นไวยากรณ์ง่ายๆ สำหรับฟังก์ชัน itoa:
int main() {
จำนวน int =12345;
ถ่าน STR [20];
itoa(ตัวเลข, str, 10);
printf("จำนวนเต็ม:%d\nString:%s\n", num, str);
กลับ 0;
ในโปรแกรมที่กำหนดมีรายละเอียดดังนี้:
- num คือจำนวนเต็ม
- str คืออักขระ
- 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 เข้ากับฟังก์ชันต่างๆ เพื่อเขียนโปรแกรมที่น่าทึ่งได้
เกี่ยวกับผู้เขียน
ประทีก จังกิด
ผู้ใช้ Linux ที่หลงใหลด้วยเหตุผลส่วนตัวและทางอาชีพ ชอบสำรวจสิ่งใหม่ๆ ในโลกของ Linux อยู่เสมอ และแบ่งปันกับผู้อ่านของฉัน
