Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Cách chuyển chuỗi sang số nguyên trong C

Quy trình trích xuất năm từ chuỗi dạng "Ten Phim (Nam)" và chuyển sang số nguyên.

Các bước

  1. Dùng strchr() tìm vị trí ký tự '('.
  2. Sao chép các ký tự bên trong ngoặc vào mảng char.
  3. Dùng atoi() chuyển chuỗi kết quả thành số nguyên.

Code minh họa

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main() {
    char *name = "The Matrix(1999)";
    char *ps = strchr(name, '('); // Tim '('

    if (ps != NULL) {
        char year_str[5] = {0};
        int p;
        // Sao chep 4 ky tu sau '('
        for (p = 1; p < 5 && ps[p] != ')' && ps[p] != '\0'; p++) {
            year_str[p-1] = ps[p];
        }
        year_str[4] = '\0';

        int year = atoi(year_str);
        printf("Nam: %d\n", year);
    }
    return 0;
}

Kết quả

Nam: 1999

Cách tốt hơn (an toàn, chuẩn C99+):

#include <stdio.h>
#include <stdlib.h>

int main() {
    const char *name = "The Matrix(1999)";
    const char *start = strchr(name, '(');
    if (start) {
        long year = strtol(start + 1, NULL, 10); // strtol an toan hon atoi
        printf("Nam: %ld\n", year);
    }
    return 0;
}

strtol cho phép phát hiện lỗi chuyển đổi, hỗ trợ cơ số tùy chọn, an toàn hơn atoi.