Computer >> Máy Tính >  >> Lập trình >> C ++

Làm thế nào để phân tích cú pháp một chuỗi thành một int trong C ++?


Bạn có thể sử dụng một luồng chuỗi để phân tích cú pháp từ int trong c ++ thành int. Bạn cần thực hiện một số kiểm tra lỗi trong phương pháp này.

ví dụ

#include<iostream>
#include<sstream>
using namespace std;

int str_to_int(const string &str) {
   stringstream ss(str);
   int num;
   ss >> num;
   return num;
}

int main() {
   string s = "12345";
   int x = str_to_int(s);
   cout << x;
}

Đầu ra

Điều này sẽ cung cấp đầu ra -

12345

Trong C ++ 11 mới, có các hàm cho điều đó:stoi (string thành int), stol (string to long), stoul (string to long), stoul (string to unsigned long) , v.v.

Ví dụ

Bạn có thể sử dụng các chức năng này như sau -

#include<iostream>
using namespace std;

int main() {
   string s = "12345";
   int x = stoi(s);
   cout << x;
}

Đầu ra

Điều này sẽ cung cấp đầu ra -

12345