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

Tách câu thành các từ trong C++


Nhiệm vụ là tách một câu thành các từ riêng lẻ. Chúng ta sẽ phân tách tất cả các từ có trong câu.

Ví dụ

Input

I am a good boy

Output

I
am
a
good
boy

Mỗi từ được in trên một dòng riêng biệt.

Cách tiếp cận

  1. Nhập chuỗi đầu vào.
  2. Duyệt qua từng ký tự của chuỗi.
  3. Khi gặp khoảng trắng, in từ hiện tại và reset bộ đệm từ.
  4. Kết thúc chuỗi, in từ cuối cùng.

Ví dụ 1: Sử dụng stringstream (khuyên dùng)

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

void split(const string& st) {
    stringstream ss(st);
    string word;
    while (ss >> word) {
        cout << word << endl;
    }
}

int main() {
    string st = "Blood from heaven is mortal";
    cout << "Original: " << st << endl;
    cout << "Words:" << endl;
    split(st);
    return 0;
}

Kết quả

Original: Blood from heaven is mortal
Words:
Blood
from
heaven
is
mortal

Ví dụ 2: Duyệt thủ công (không dùng stringstream)

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

void split(const string& st) {
    string word = "";
    for (char c : st) {
        if (c == ' ') {
            if (!word.empty()) {
                cout << word << endl;
                word = "";
            }
        } else {
            word += c;
        }
    }
    if (!word.empty()) cout << word << endl;
}

int main() {
    string st = "type a text message";
    cout << "Original: " << st << endl;
    cout << "Words:" << endl;
    split(st);
    return 0;
}

Kết quả

Original: type a text message
Words:
type
a
text
message

Lưu ý: Cách dùng stringstream (ví dụ 1) ngắn gọn và xử lý tự động nhiều khoảng trắng liên tiếp. Cách duyệt thủ công (ví dụ 2) cho phép kiểm soát chi tiết hơn (ví dụ: giữ khoảng trắng, xử lý tab, newline...).