forked from bangoc/c-basic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vd7-2.c
37 lines (36 loc) · 1.04 KB
/
vd7-2.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/*
(C) Nguyễn Bá Ngọc 2021
Minh họa sử dụng ánh xạ dựa trên cây đỏ/đen
Chương trình hỏi người dùng nhập vào từng chuỗi
ký tự cho tới khi người dùng nhập chuỗi rỗng
(chỉ nhấn enter). Sau đó chương trình đưa
ra các chuỗi người dùng đã nhập cùng với số lần
chuỗi đó được nhập.
*/
#include "cgen.h"
#include "ext/io.h"
#include <stdio.h>
#include <string.h>
int main() {
char buff[1024];
printf("Nhập chuỗi ký tự (hoặc chỉ bấm Enter): \n");
rbm_t words = rbm_create(gtype_cmp_s, gtype_free_s, NULL);
do {
remove_tail_lf(fgets(buff, 1024, stdin));
if (buff[0] == '\0') {
break;
}
char *s = strdup(buff);
rbm_ires res = rbm_insert(words, gtype_s(s), gtype_l(1));
if (!res.inserted) {
res.value->l += 1;
free(s);
}
} while (1);
printf("Các từ đã nhập và số lần nhập: \n");
rbm_traverse(k, v, words) {
printf("%s: %ld\n", k->s, v->l);
}
rbm_free(words);
return 0;
}