Đếm số lần xuất hiện của từ trong chuỗi C++ | Laptrinhcanban.com

HOME › >>

Đếm số lần xuất hiện của từ trong chuỗi C++

Hướng dẫn cách đếm số lần xuất hiện của từ trong chuỗi C++. Trong lập trình, việc đếm số lần xuất hiện của từ trong chuỗi là một nhiệm vụ quan trọng và thường xuyên được thực hiện. Trong bài viết này, chúng ta sẽ tìm hiểu về cách thực hiện nhiệm vụ này bằng ngôn ngữ lập trình C++. Đồng thời, chúng ta cũng sẽ xem xét các ứng dụng thực tế của việc đếm số lần xuất hiện của từ trong chuỗi.

Đếm Số Lần Xuất Hiện Của Từ sử Dụng Vòng Lặp và Xử Lý Chuỗi

Một cách đơn giản để đếm số lần xuất hiện của từ trong chuỗi là sử dụng vòng lặp để duyệt qua từng từ và xác định số lần xuất hiện của mỗi từ. Dưới đây là một ví dụ minh họa:

#include <iostream>
#include <string>
#include <unordered_map>

using namespace std;

void countWordOccurrences(const string &str) {
unordered_map<string, int> wordOccurrences;

// Duyệt qua từng từ trong chuỗi
size_t startPos = 0;
size_t endPos;

while ((endPos = str.find(' ', startPos)) != string::npos) {
string word = str.substr(startPos, endPos - startPos);

// Tăng số lần xuất hiện của từ trong bản đồ
wordOccurrences[word]++;

// Di chuyển sang vị trí bắt đầu của từ tiếp theo
startPos = endPos + 1;
}

// Xử lý từ cuối cùng trong chuỗi
string lastWord = str.substr(startPos);
wordOccurrences[lastWord]++;

// In số lần xuất hiện của mỗi từ
for (const auto &entry : wordOccurrences) {
cout << "Tu '" << entry.first << "' xuat hien " << entry.second << " lan." << endl;
}
}

int main() {
string inputString = "Counting word occurrences in a string. Counting is important.";

// Gọi hàm đếm số lần xuất hiện của từ
countWordOccurrences(inputString);

return 0;
}

Trong ví dụ này, một unordered_map được sử dụng để lưu trữ số lần xuất hiện của từng từ trong chuỗi.

Sử Dụng Hàm find() và Thuật Toán Duyệt một Lần

Một cách hiệu quả hơn là sử dụng hàm find() để xác định vị trí của từng từ trong chuỗi và sau đó tăng biến đếm. Cách này giảm thiểu việc tạo các chuỗi phụ, giúp tối ưu hóa hiệu suất.

#include <iostream>
#include <string>

using namespace std;

void countWordOccurrences(const string &str) {
const char SPACE = ' ';
size_t startPos = 0;
size_t endPos;
size_t strLength = str.length();

while (startPos < strLength) {
// Tìm vị trí của khoảng trắng kế tiếp
endPos = str.find(SPACE, startPos);

// Nếu không tìm thấy, chuyển đến cuối chuỗi
if (endPos == string::npos) {
endPos = strLength;
}

// Xác định từ trong khoảng [startPos, endPos)
string word = str.substr(startPos, endPos - startPos);

// In số lần xuất hiện của từ
cout << "Tu '" << word << "' xuat hien 1 lan." << endl;

// Di chuyển sang vị trí bắt đầu của từ tiếp theo
startPos = endPos + 1;
}
}

int main() {
string inputString = "Counting word occurrences in a string. Counting is important.";

// Gọi hàm đếm số lần xuất hiện của từ
countWordOccurrences(inputString);

return 0;
}

Ứng Dụng Trong Xử Lý Dữ Liệu và Thống Kê

Xử Lý Dữ Liệu Người Dùng

Khi người dùng nhập một đoạn văn bản, việc đếm số lần xuất hiện của từ có thể hữu ích để phân tích và kiểm soát dữ liệu người dùng.

#include <iostream>
#include <string>

using namespace std;

void processUserInput(const string

&userInput) {
// Gọi hàm đếm số lần xuất hiện của từ
countWordOccurrences(userInput);

// Tiếp tục xử lý dữ liệu người dùng...
}

int main() {
string userInput;

cout << "Nhap mot doan van ban: ";
getline(cin, userInput);

// Gọi hàm xử lý dữ liệu người dùng
processUserInput(userInput);

return 0;
}

Thống Kê Từ Trong Tệp Tin Văn Bản

Trong các ứng dụng đọc và phân tích văn bản, việc đếm số lần xuất hiện của các từ có thể giúp hiểu rõ hơn về nội dung của tệp tin.

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

void analyzeText(const string &filename) {
ifstream file(filename);
string text;

if (file.is_open()) {
// Đọc nội dung của tệp tin
getline(file, text);
file.close();

// Gọi hàm đếm số lần xuất hiện của từ
countWordOccurrences(text);
} else {
cout << "Khong the mo file!" << endl;
}
}

int main() {
string filename = "sample.txt";

// Gọi hàm phân tích văn bản
analyzeText(filename);

return 0;
}

Tổng Kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách đếm số lần xuất hiện của từ trong chuỗi C++ rồi. Đếm số lần xuất hiện của từ trong chuỗi không chỉ là một nhiệm vụ lập trình phổ biến mà còn mang lại nhiều ứng dụng thực tế trong xử lý dữ liệu và thống kê. Bằng cách sử dụng các kỹ thuật lập trình và cấu trúc dữ liệu phù hợp, chúng ta có thể linh hoạt và hiệu quả trong việc giải quyết vấn đề này. Từ xử lý dữ liệu người dùng đến thống kê thông tin trong văn bản, khả năng đếm số lần xuất hiện của từ trong chuỗi giúp nâng cao chất lượng và tính ứng dụng của các ứng dụng lập trình.

URL Link

https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/chuoi-string-trong-cpp/dem-so-lan-xuat-hien-cua-tu-trong-chuoi-cpp/

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.