Bài 59. Chuyển kiểu string sang int

This entry is part 57 of 69 in the series Học C Không Khó

Chuyển kiểu string sang int  trong c/c++ như thế nào? Có những cách nào giúp bạn chuyển từ kiểu string sang int trong c/c++?. Trong bài viết này Nguyễn Văn Hiếu Blog sẽ cùng các bạn tìm hiểu về những cách chuyển từ kiểu string sang kiểu int trong c/c++. Các bạn có thể sử dụng bất kỳ cách nào bạn thấy phù hợp trong những cách được trình bày trong bài.

Chuyển kiểu string sang int trong C/C++
Chuyển kiểu string sang int trong C/C++

Nếu bạn đang tìm cách chuyển từ int sang string, hãy đọc bài viết cách chuyển int sang string nhé.

1. Cách chuyển kiểu string sang int

Trong quá trình lập trình, chắc chắn sẽ có nhiều trường hợp bạn cần chuyển kiểu dữ liệu từ string sang int. Với các ngôn ngữ lập trình bậc cao, việc chuyển đổi này trở nên đơn giản khi có sự hỗ trợ của các hàm được xây dựng sẵn. Oh, nhưng C/C++ cũng có một số cách chuyển đổi đấy; C/C++ cũng có một số hàm dựng sẵn để bạn sử dụng; Mình sẽ trình bày ở mục tiếp theo. Nhưng nếu bạn muốn tự chuyển từ string sang int, hãy đọc qua ý tưởng mình trình bày ở cách 1 nhé.

Dưới đây là một số cách khác nhau để chuyển kiểu string sang int trong C/C++:

Cách 1. Sử dụng vòng lặp for

Giả sử, nếu bạn có một chuỗi string là “12345”. Làm sao bạn chuyển thành số 12345 được.

Mình phân tích một chút:

12345 = 5*10^0 + 4*10^1 + 3*10^2 + 2*10^3 + 1*10^4.

Ok, như vậy, bạn chỉ cần lấy từng ký tự từ cuối lên, và nhân với 10^x, x sẽ tăng dần từ 0. Cộng tổng chúng lại là được kết quả rồi đấy.

Cách 2. Sử dụng hàm atoi()

Hàm atoi() thuộc thư viện stdlib.h của ngôn ngữ C/C++. Hàm này nhận vào mảng có kiểu char[]. Do vậy, nếu bạn muốn chuyển từ chuỗi sang số thì cần chuyển chuỗi về string trước; Bằng cách sử dụng c_str().

Cách 3. Sử dụng hàm stoi()

Lưu ý: Hàm này chỉ làm việc với C++11 trở lên.

  • Tham số str: Biến string cần chuyển sang kiểu int
  • Tham số index : Chỉ định chỉ số bắt đầu chuyển
  • Tham số base: Chỉ định cơ số của input.

Cách 4. Sử dụng hàm sscanf()

Hàm này có đối số nhận vào là char*. Do vậy, nếu bạn cần chuyển từ string, hãy chuyển string về char* sử dụng hàm c_str() nhé.

Cách 5. Sử dụng stringstream

Đây là một cách khá đơn giản. Hàm này có trong thư viện sstream của C++.

2. Code chuyển kiểu int sang string

Sau đây, mình xin chia sẻ code các cách mình đã trình bày ở trên. Các bạn có thể tham khảo và nâng cấp thêm.

Cách 1. Chyển string sang int sử dụng vòng lặp for

Với cách này, tạm thời code dưới đây mình chỉ áp dụng cho số nguyên. Nếu bạn cần chuyển string số thực, bạn hãy xác định vị trí của dấu “.”. Sau đó phần sau dấu “.” sẽ nhân với 10^x, x bắt đầu từ -1 và giảm dần khi xa dấu “.”

Output:

Cách 2. Chuyển chuỗi sang số sử dụng hàm atoi()

Output:

Cách 3. Sử dụng hàm stoi()

Lưu ý: Hàm này chỉ làm việc với C++11 trở lên.

Output:

Cách 4. Chuyển string sang kiểu int sử dụng sscanf()

Output:

The value of x : 12345

Cách 5. Sử dụng stringstream

Output:

Value of x : 12345

Trên đây là những  cách chuyển string sang int trong C/C++ mà Nguyễn Văn Hiếu Blog muốn chia sẻ cho các bạn. Mong rằng với những gì chúng tôi vừa cung cấp cho các bạn sẽ giúp được phần nào đó cho các bạn trong quá trình học tập và rèn luyện của mình.

Chúc các bạn học tốt!

Similar Posts

Subscribe
Notify of
guest
7 Bình luận
Inline Feedbacks
View all comments