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

แปลงสตริงเป็นตัวเลขและกลับกันใน C++


ในส่วนนี้เราจะดูวิธีแปลงสตริงเป็นตัวเลข และตัวเลขเป็นสตริง ก่อนอื่นเราจะดูการแปลงสตริงเป็นตัวเลข

การแปลงสตริงเป็นตัวเลข

ที่นี่เราจะดูวิธีแปลงสตริงตัวเลขเป็นข้อมูลประเภท 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