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

Cách duyệt từ (iterate words) trong chuỗi C/C++ thanh lịch nhất


Không có một cách "thanh lịch nhất" duy nhất. Cách dễ đọc nhất có thể gọi là thanh lịch đối với một số người, hiệu năng nhất cho người khác. Liệt kê 2 phương pháp.

Cách 1: stringstream đọc từ tách bởi khoảng trắng. Hơi hạn chế nhưng tốt nếu có kiểm tra đúng.

Ví dụ

#include <vector>
#include <string>
#include <sstream>
using namespace std;

int main() {
    string str("Hello from the dark side");
    string tmp;
    stringstream str_strm(str);
    vector<string> words;
    while (str_strm >> tmp) {
        // Kiểm tra tmp (rỗng, ký tự đặc biệt)
        words.push_back(tmp);
    }
}

Cách 2: getline với delimiter tùy chỉnh.

Ví dụ

#include <vector>
#include <string>
#include <sstream>
using namespace std;

int main() {
    stringstream str_strm("Hello from the dark side");
    string tmp;
    vector<string> words;
    char delim = ' ';
    while (getline(str_strm, tmp, delim)) {
        // Kiểm tra tmp
        words.push_back(tmp);
    }
}