Khó khăn với hàm strtok
tóm tắt là em đang làm 1 máy tìm kiếm, tìm kiếm được 1 từ, code ok cả rồi…bây giờ em đang muốn nâng cấp lên tìm 2 từ ( ví dụ như tìm obama trump thì tìm được link chưa cả 2 từ obama trump).Ý tưởng của em là tách chuỗi ra thành các token rồi tìm kiếm các token như tìm kiếm từ đơn nhưng em không thể nào hiểu nổi cách làm việc của hàm strtok và giá trị nó trả về là gì, lỗi cụ thể thì quá nhiều em không thể kể ra hết được.Đây là đoạn code và chuỗi minh họa của em, hàm main đều đúng hêt rồi chỉ có hàm tìm kiếm là cần sửa lại…Em mong mọi người giúp ạ chứ em đã mò 2 ngày nay rồi.Em cảm ơn mọi người rất nhiều
#include<stdio.h>
#include<string.h>
#include<fstream>
int checkakeyword(char*p, char*q);
struct result
{
char title[1000];
char link[1000];
};
void main()
{
int dem = 0;
char keyword[1000];
printf("ENTER A KEYWORD :");
gets_s(keyword);
result RESULT;
FILE*database;
database = fopen("D:\database.txt", "r");
while (!feof(database))
{
fgets(RESULT.title, 1000, database); //chuyển tiêu đề vào chuỗi RESULT.title
if (checkakeyword(keyword, RESULT.title) == 1) dem++;
}
printf("FOUND RESULTS: %i
", dem);
rewind(database);
while (!feof(database))
{
fgets(RESULT.title, 1000, database);
if (checkakeyword(keyword, RESULT.title) == 1) {
printf("%s", RESULT.title);
fgets(RESULT.link, 1000, database);
printf("%s", RESULT.link);
printf("
");
}
}
fclose(database);
}
int checkakeyword(char*p, char*q)
{
int m = 0, n = 0;
int k;
char s[1000];
char* token;
strlwr(p);
strcpy(s, q);
strlwr(s);
token = strtok(p, " ");
while (token != NULL)
{
if (strstr(s, token) != NULL) n++; // nếu 1 từ đơn khớp thì tăng n lên 1 đơn vị
if (token != NULL) m++; //m là biến đếm số từ đơn được tách ra
token = strtok(NULL, " ");
}
if (m == n) k = 1; else k = 0; //nếu số từ đơn = số từ khớp thì k=1
return k;
}
Trump’s Cabinet Selections Signal Pointed Shift After Obama
VOA

Trump's Cabinet Selections Signal Pointed Shift After Obama
President-elect’s assembled nominees for Cabinet include many business executives who have never served in government
đây là chuỗi minh họa ạ, làm sao để khi nhập vào " obama trump" thì nó hiện ra dòng này ?