ในส่วนนี้เราจะดูวิธีแปลงสตริงเป็นตัวเลข และตัวเลขเป็นสตริง ก่อนอื่นเราจะดูการแปลงสตริงเป็นตัวเลข
การแปลงสตริงเป็นตัวเลข
ที่นี่เราจะดูวิธีแปลงสตริงตัวเลขเป็นข้อมูลประเภท integer เราสามารถแก้ปัญหานี้ได้โดยใช้ฟังก์ชัน atoi() ฟังก์ชันนี้รับสตริงเป็น input และแปลงเป็นข้อมูล integer
ฟังก์ชัน atoi() อยู่ในไลบรารี <cstdlib>
Input: สตริงตัวเลข "1234" Output: 1234
อัลกอริทึม
ขั้นตอน 1: รับสตริงตัวเลข ขั้นตอน 2: แปลงเป็น integer ด้วยฟังก์ชัน atoi() ขั้นตอน 3: พิมพ์ผลลัพธ์ ขั้นตอน 4: จบ
ตัวอย่างโค้ด
#include <iostream>
#include <cstdlib>
using namespace std;
main() {
int n;
char num_string[20] = "1234";
n = atoi(num_string);
cout << n;
}
ผลลัพธ์
1234
การแปลงตัวเลขเป็นสตริง
ในส่วนนี้เราจะดูวิธีแปลงตัวเลข (integer หรือ float หรือข้อมูลตัวเลขประเภทอื่น) เป็นสตริง
ตรรกะง่ายมาก เราจะใช้ฟังก์ชัน sprintf() ฟังก์ชันนี้ใช้พิมพ์ค่าหรือบรรทัดลงในสตริง แต่ไม่ใช่ในคอนโซล นี่คือความต่างเดียวระหว่าง printf() และ sprintf() อาร์กิวเมนต์แรกคือ string buffer ที่เราต้องการเก็บข้อมูล
Input: ผู้ใช้ใส่ค่าตัวเลขเช่น 42.26 Output: โปรแกรมจะคืนค่าสตริงเทียบเท่าของตัวเลขนั้น เช่น "42.26"
อัลกอริทึม
ขั้นตอน 1: รับตัวเลขจากผู้ใช้ ขั้นตอน 2: สร้าง string buffer ว่างเพื่อเก็บผลลัพธ์ ขั้นตอน 3: ใช้ sprintf() แปลงตัวเลขเป็นสตริง ขั้นตอน 4: จบ
ตัวอย่างโค้ด
#include <stdio.h>
main() {
char str[20]; // สร้างสตริงว่างเก็บตัวเลข
float number;
printf("Enter a number: ");
scanf("%f", &number);
sprintf(str, "%f", number); // แปลงตัวเลขเป็นสตริงด้วย sprintf
printf("You have entered: %s", str);
}
ผลลัพธ์
Enter a number: 46.3258 You have entered: 46.325802