Chuyển chuỗi thành số trong C (atoi,atof,atol) | Laptrinhcanban.com

HOME › >>

Chuyển chuỗi thành số trong C (atoi,atof,atol)

Hướng dẫn cách chuyển chuỗi thành số trong C. Bạn sẽ học được cách sử dụng hàm sprintf() và itoa() để chuyển chuỗi thành số trong C sau bài học này.

Chúng ta có 3 phương pháp để chuyển chuỗi thành số trong C như sau:

  • Hàm atoi(): Chuyển string sang int trong C
  • Hàm atol(): Chuyển string sang long trong C
  • Hàm atof(): Chuyển string sang float trong C

Chuyển string sang int trong C | hàm atoi()

Hàm atoi() là một hàm có sẵn trong header file stdlib.h, giúp chúng ta chuyển string sang int trong C.

Chúng ta sử dụng hàm strcpy() để chuyển string sang int với cú pháp sau đây:

atoi(str);

Trong đó str là chuỗi cần chuyển thành số.

Nếu chuỗi chỉ định có thể chuyển sang int thì hàm atoi() sẽ chuyển chuỗi đó sang kiểu số nguyên. Tuy nhiên nếu chuỗi đó không thể chuyển sang kiểu số nguyên int thì giá trị 0 sẽ được trả về.

Lại nữa, trong trường hợp chuỗi chỉ định chứa cả thành phần có thể và không thể chuyển sang kiểu int thì hàm atoi() sẽ chỉ chuyển phần string có thể chuyển thành int tính từ đầu chuỗi mà thôi.

Và nếu như ở đầu chuỗi chỉ định chứa ký tự trắng (dấu cách, tab hay xuống dòng) thì hàm atoi() sẽ bỏ qua chúng cho tới khi tìm thấy ký tự khác ký tự trắng đầu tiên xuất hiện.

Và chúng ta cần phải viết thêm dòng #include <stdlib.h> để load header file stdlib.h để có thể sử dụng được hàm atoi() trong chuơng trình.

Ví dụ cụ thể:

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

int main(void)
{
/* Chuỗi chứa số nguyên int*/
char str0[] = "123";

/* Chuỗi chứa số thực có một phần số nguyên*/
char str1[] = "123";

/* Chuỗi chứa cả phần có thể và không thể chuyển sang int*/
char str2[] = "-123ab";

/* Chuỗi chứa ký tự trắng đầu chuỗi*/
char str3[] = " \n\t123ab";

/* Chuỗi không thể chuyển sang số nguyên*/
char str4[] = "a123b";

int num0 = atoi(str0);
int num1 = atoi(str1);
int num2 = atoi(str2);
int num3 = atoi(str3);
int num4 = atoi(str4);

printf("%s => %d\n", str0,num0);
printf("%s => %d\n", str1,num1);
printf("%s => %d\n", str2,num2);
printf("%s => %d\n", str3,num3);
printf("%s => %d\n", str4,num4);

return 0;
}

Kết quả:

123 => 123
123 => 123
-123ab => -123

123ab => 123
a123b => 0

Chuyển string sang long trong C

Tương tự như với hàm atoi() thì chúng ta có các hàm atol() để chuyển string sang long trong C.

Cú pháp và cách sử dụng của hàm này thì hoàn toàn tương tự như với hàm atoi() như sau:

atol(str);

Ví dụ cụ thể:

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

int main () {
long val;
char str[20];

strcpy(str, "11111.22abac");
val = atof(str);
printf("%s => %ld\n", str, val);

return(0);
}

//1111.22abac => 11111

Chuyển string sang float trong C

Tương tự như với hàm atoi() thì chúng ta có các hàm atof() để chuyển string sang float trong C.

Cú pháp và cách sử dụng của hàm này thì hoàn toàn tương tự như với hàm atoi() như sau:

atoi(str);

Ví dụ cụ thể:

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

int main () {
float val;
char str[20];

strcpy(str, "11.22abac");
val = atof(str);
printf("%s => %.2f\n", str, val);

return(0);
}

//11.22abac => 11.22

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách tính chuyển chuỗi thành số trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C trong các bài học tiếp theo.

mojiretsu6.html)

URL Link

https://laptrinhcanban.com/c/lap-trinh-c-co-ban/chuoi-string-trong-c/chuyen-chuoi-thanh-so-trong-c/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.