Tìm định nghĩa của nhiều từ trong file từ điển cho trước

Buid WORD structure to store word in language with name and its definition. Applying search algorithms to create dictionary software.
Command line: StudentId_Labx.exe word1 word2 word3 … out.txt with word1, word2, so on are words which user want to know definition. The out.txt is output file which contains their defintions. Each word and its definition is diplayed similar with dictionary file. In the dictionary (file attachment), each line will store one word and its definitions. Word and definition are separated by the colon. The following figure is an example of dictionary.

Mong mọi người chỉ em bài này dùng c++ với ạ. Em cảm ơn mọi người nhiều.

Châm ngôn của DNH:

Người thảo luận để tìm ra cách giải hay cho một bài toán khó sẽ trở thành lập trình viên giỏi. Người hay hỏi bài tập thì không. Còn bạn thì sao?


Bài này input qua tham số dòng lệnh (command-line argument), trong hàm main của C++ có sẵn tham số argc là số tham số truyền vào chương trình và argv[] là mảng con trỏ đến các tham số.

Cách đơn giản nhất để giải bài này là nhập nội dung file từ điển vào một mảng hai chiều, trong mỗi mảng thì phần tử đầu tiên là từ, thứ hai là định nghĩa của từ đó. Tối ưu nhưng rối rắm hơn là dùng thuật toán Aho–Corasick.

3 Likes

Chuyển nội dung vào mảng 2 chiều như thế nào ạ ? Bạn có chỉ cho mình ko ? Mình cảm ơn @HR16

Cách đơn giản nhất là tách từng dòng rồi tách phần từ và nghĩa bằng getline. Ngoài dùng để tách dòng ra nói riêng, getline cũng có thể dùng để tách chuỗi nói chung bằng cách truyền kí tự phân cách làm tham số thứ 3.
Ví dụ:

string word_define;
while (readline(file_stream, word_define)){
    string word;
    readline(word_define, word, '-');
    string definition;
    readline(word_define, definition, '-');
}
2 Likes

Cái này là dùng để tách từ và định nghĩa ra phải ko ạ? Sau khi tách, mình tìm kiếm bình thường thôi đúng ko ạ?

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?