trackler 2.0.0.5 → 2.0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/bash/docs/TESTS.md +1 -1
- data/tracks/bash/exercises/bob/bob_test.sh +2 -0
- data/tracks/bash/exercises/gigasecond/gigasecond_test.sh +2 -0
- data/tracks/bash/exercises/hamming/hamming_test.sh +2 -0
- data/tracks/bash/exercises/hello-world/hello_world_test.sh +2 -0
- data/tracks/bash/exercises/leap/leap_test.sh +2 -0
- data/tracks/bash/exercises/raindrops/raindrops_test.sh +2 -0
- data/tracks/bash/exercises/rna-transcription/rna_transcription_test.sh +2 -0
- data/tracks/c/bin/verify-indent +5 -1
- data/tracks/c/config.json +10 -1
- data/tracks/c/exercises/clock/src/clock.h +1 -1
- data/tracks/c/exercises/largest-series-product/test/test_largest_series_product.c +1 -1
- data/tracks/c/exercises/phone-number/src/example.c +4 -2
- data/tracks/c/exercises/roman-numerals/src/example.c +20 -21
- data/tracks/c/exercises/roman-numerals/src/example.h +1 -1
- data/tracks/c/exercises/roman-numerals/test/test_roman_numerals.c +1 -0
- data/tracks/c/exercises/sum-of-multiples/src/example.c +3 -1
- data/tracks/c/exercises/sum-of-multiples/src/example.h +3 -1
- data/tracks/c/exercises/sum-of-multiples/test/test_sum_of_multiples.c +44 -22
- data/tracks/c/exercises/word-count/makefile +16 -0
- data/tracks/c/exercises/word-count/src/example.c +65 -0
- data/tracks/c/exercises/word-count/src/word_count.h +22 -0
- data/tracks/c/exercises/word-count/test/test_word_count.c +372 -0
- data/tracks/c/exercises/word-count/test/vendor/unity.c +1300 -0
- data/tracks/c/exercises/word-count/test/vendor/unity.h +274 -0
- data/tracks/c/exercises/word-count/test/vendor/unity_internals.h +701 -0
- data/tracks/crystal/.gitignore +1 -0
- data/tracks/crystal/Makefile +6 -0
- data/tracks/crystal/README.md +25 -0
- data/tracks/crystal/config.json +10 -2
- data/tracks/crystal/exercises/acronym/spec/acronym_spec.cr +32 -0
- data/tracks/crystal/exercises/acronym/src/example.cr +7 -0
- data/tracks/crystal/exercises/hello-world/spec/hello_world_spec.cr +8 -10
- data/tracks/crystal/exercises/hello-world/src/example.cr +1 -1
- data/tracks/crystal/src/generator/exercises/acronym.cr +34 -0
- data/tracks/crystal/src/generator/exercises/exercise_generator.cr +39 -0
- data/tracks/crystal/src/generator/exercises/exercise_test_case.cr +8 -0
- data/tracks/crystal/src/generator/exercises/hello_world.cr +38 -0
- data/tracks/crystal/src/generator/exercises/templates/example.tt +10 -0
- data/tracks/crystal/src/generator/generate.cr +15 -0
- data/tracks/crystal/src/generator/spec/exercise_generator_spec.cr +27 -0
- data/tracks/crystal/src/generator/spec/exercise_test_case_spec.cr +23 -0
- data/tracks/elixir/exercises/space-age/space_age.exs +1 -1
- data/tracks/elm/config.json +5 -31
- data/tracks/elm/elm-package.json +1 -0
- data/tracks/elm/exercises/bob/BobTests.elm +1 -1
- data/tracks/elm/exercises/run-length-encoding/RunLengthEncoding.elm +5 -0
- data/tracks/elm/exercises/scrabble-score/ScrabbleScore.elm +1 -0
- data/tracks/elm/exercises/scrabble-score/ScrabbleScore.example +32 -0
- data/tracks/elm/exercises/scrabble-score/ScrabbleScoreTests.elm +43 -0
- data/tracks/elm/exercises/scrabble-score/elm-package.json +16 -0
- data/tracks/elm/exercises/scrabble-score/runtests.bat +1 -0
- data/tracks/elm/exercises/scrabble-score/runtests.sh +2 -0
- data/tracks/elm/exercises/sublist/Sublist.elm +5 -0
- data/tracks/fsharp/exercises/sum-of-multiples/SumOfMultiplesTest.fs +6 -1
- data/tracks/haskell/docs/LEARNING.md +11 -2
- data/tracks/haskell/exercises/list-ops/test/Tests.hs +2 -0
- data/tracks/java/config.json +13 -1
- data/tracks/java/exercises/etl/src/test/java/EtlTest.java +101 -55
- data/tracks/java/exercises/hello-world/TUTORIAL.md +1 -1
- data/tracks/java/exercises/largest-series-product/build.gradle +17 -0
- data/tracks/java/exercises/largest-series-product/src/example/java/LargestSeriesProductCalculator.java +56 -0
- data/tracks/java/exercises/largest-series-product/src/main/java/LargestSeriesProductCalculator.java +5 -0
- data/tracks/java/exercises/largest-series-product/src/test/java/LargestSeriesProductCalculatorTest.java +218 -0
- data/tracks/java/exercises/queen-attack/build.gradle +17 -0
- data/tracks/java/exercises/queen-attack/src/example/java/BoardCoordinate.java +39 -0
- data/tracks/java/exercises/queen-attack/src/example/java/QueenAttackCalculator.java +54 -0
- data/tracks/java/exercises/queen-attack/src/main/java/BoardCoordinate.java +5 -0
- data/tracks/java/exercises/queen-attack/src/main/java/QueenAttackCalculator.java +5 -0
- data/tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java +135 -0
- data/tracks/java/exercises/settings.gradle +2 -0
- data/tracks/ocaml/exercises/leap/test.ml +17 -6
- data/tracks/rust/_test/check-exercises.sh +5 -0
- data/tracks/swift/docs/TESTS.md +23 -3
- metadata +35 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd26f913270ca0a9e000f69e94f05f446e3dbcf0
|
4
|
+
data.tar.gz: be8dca46c9162bd55189ae5840d5f9cce840cfa6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40227845c9e6200c10cd5f4eb6f1d7b78bfba7160b9adaafc804293f92b7b0fef3eae27f56c3c810b4ed2daf6761b29e32a6d5dfbf9e77f788d0355d2cc95b28
|
7
|
+
data.tar.gz: 944ef6f86d085ea5b0d20e1c048ac31bc95f54a38f99ce7f0f9cf6358de4c6cd8a2bb096fb4b00f64455441115432bf45819cea2b1d9f23dc8b76f98788929b4
|
data/lib/trackler/version.rb
CHANGED
data/tracks/bash/docs/TESTS.md
CHANGED
data/tracks/c/bin/verify-indent
CHANGED
data/tracks/c/config.json
CHANGED
@@ -137,8 +137,17 @@
|
|
137
137
|
"strings"
|
138
138
|
]
|
139
139
|
}, {
|
140
|
-
"
|
140
|
+
"difficulty": 3,
|
141
|
+
"slug": "word-count",
|
142
|
+
"topics": [
|
143
|
+
"strings",
|
144
|
+
"filtering",
|
145
|
+
"structs",
|
146
|
+
"memory management"
|
147
|
+
]
|
148
|
+
}, {
|
141
149
|
"difficulty": 4,
|
150
|
+
"slug": "allergies",
|
142
151
|
"topics": [
|
143
152
|
"control-flow (if-statements)",
|
144
153
|
"control-flow (loops)",
|
@@ -50,7 +50,7 @@ void test_can_get_the_largest_product_of_a_big_number_project_euler(void)
|
|
50
50
|
TEST_ASSERT_EQUAL_INT64(23514624000,
|
51
51
|
largest_series_product
|
52
52
|
("7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450",
|
53
|
-
|
53
|
+
13));
|
54
54
|
}
|
55
55
|
|
56
56
|
void test_reports_zero_if_the_only_digits_are_zero(void)
|
@@ -15,7 +15,8 @@
|
|
15
15
|
|
16
16
|
#define INVALID_NUMBER_RESULT "0000000000"
|
17
17
|
|
18
|
-
static void remove_leading_digit(char *phone_number)
|
18
|
+
static void remove_leading_digit(char *phone_number)
|
19
|
+
{
|
19
20
|
char *temp = calloc(VALID_NUMBER_LENGTH, sizeof(char));
|
20
21
|
strcpy(temp, &phone_number[1]);
|
21
22
|
strcpy(phone_number, temp);
|
@@ -58,7 +59,8 @@ char *phone_number_format(const char *input)
|
|
58
59
|
char *cleaned_input = phone_number_clean(input);
|
59
60
|
char *output = calloc(FORMATTED_LENGTH, sizeof(char));
|
60
61
|
|
61
|
-
sprintf(output, "(%.3s) %.3s-%.4s", cleaned_input,
|
62
|
+
sprintf(output, "(%.3s) %.3s-%.4s", cleaned_input,
|
63
|
+
&cleaned_input[AREA_CODE_LENGTH], &cleaned_input[EXTENSION_OFFSET]);
|
62
64
|
|
63
65
|
free(cleaned_input);
|
64
66
|
|
@@ -5,36 +5,35 @@
|
|
5
5
|
#define NUM_OF_ELEMENTS(a) (sizeof(a) / sizeof(a[0]))
|
6
6
|
#define MAX_NUMERAL_LENGTH (7)
|
7
7
|
|
8
|
-
typedef struct
|
9
|
-
|
10
|
-
|
11
|
-
unsigned int value;
|
8
|
+
typedef struct {
|
9
|
+
char *numeral;
|
10
|
+
unsigned int value;
|
12
11
|
} numeral_values_t;
|
13
12
|
|
14
|
-
const numeral_values_t numeral_values[] =
|
15
|
-
{
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
{ "I", 1 }
|
13
|
+
const numeral_values_t numeral_values[] = {
|
14
|
+
{"M", 1000},
|
15
|
+
{"CM", 900},
|
16
|
+
{"D", 500},
|
17
|
+
{"CD", 400},
|
18
|
+
{"C", 100},
|
19
|
+
{"XC", 90},
|
20
|
+
{"L", 50},
|
21
|
+
{"XL", 40},
|
22
|
+
{"X", 10},
|
23
|
+
{"IX", 9},
|
24
|
+
{"V", 5},
|
25
|
+
{"IV", 4},
|
26
|
+
{"I", 1}
|
29
27
|
};
|
30
28
|
|
31
|
-
char *
|
29
|
+
char *to_roman_numeral(unsigned int number)
|
32
30
|
{
|
33
31
|
char *numerals = calloc(0, sizeof(char) * MAX_NUMERAL_LENGTH);
|
34
32
|
|
35
33
|
for (size_t i = 0; i < NUM_OF_ELEMENTS(numeral_values); i++) {
|
36
34
|
while (number >= numeral_values[i].value) {
|
37
|
-
strncat(numerals, numeral_values[i].numeral,
|
35
|
+
strncat(numerals, numeral_values[i].numeral,
|
36
|
+
MAX_NUMERAL_LENGTH - strlen(numerals));
|
38
37
|
number -= numeral_values[i].value;
|
39
38
|
}
|
40
39
|
}
|
@@ -1,7 +1,9 @@
|
|
1
1
|
#include "sum_of_multiples.h"
|
2
2
|
#include <stdbool.h>
|
3
3
|
|
4
|
-
unsigned int sum_of_multiples(const unsigned int *multiples,
|
4
|
+
unsigned int sum_of_multiples(const unsigned int *multiples,
|
5
|
+
const size_t number_of_multiples,
|
6
|
+
const unsigned int upper_bound)
|
5
7
|
{
|
6
8
|
unsigned int sum = 0;
|
7
9
|
|
@@ -3,6 +3,8 @@
|
|
3
3
|
|
4
4
|
#include <stddef.h>
|
5
5
|
|
6
|
-
unsigned int sum_of_multiples(const unsigned int *multiples,
|
6
|
+
unsigned int sum_of_multiples(const unsigned int *multiples,
|
7
|
+
const size_t number_of_multiples,
|
8
|
+
const unsigned int up_to);
|
7
9
|
|
8
10
|
#endif
|
@@ -5,68 +5,90 @@
|
|
5
5
|
|
6
6
|
void test_sum_of_multiples_of_3_and_5_up_to_1(void)
|
7
7
|
{
|
8
|
-
const unsigned int multiples[] = {3, 5};
|
9
|
-
TEST_ASSERT_EQUAL(0,
|
8
|
+
const unsigned int multiples[] = { 3, 5 };
|
9
|
+
TEST_ASSERT_EQUAL(0,
|
10
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
11
|
+
1));
|
10
12
|
}
|
11
13
|
|
12
14
|
void test_sum_of_multiples_of_3_and_5_up_to_4(void)
|
13
15
|
{
|
14
|
-
const unsigned int multiples[] = {3, 5};
|
15
|
-
TEST_ASSERT_EQUAL(3,
|
16
|
+
const unsigned int multiples[] = { 3, 5 };
|
17
|
+
TEST_ASSERT_EQUAL(3,
|
18
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
19
|
+
4));
|
16
20
|
}
|
17
21
|
|
18
22
|
void test_sum_of_multiples_of_3_and_5_up_to_10(void)
|
19
23
|
{
|
20
|
-
const unsigned int multiples[] = {3, 5};
|
21
|
-
TEST_ASSERT_EQUAL(23,
|
24
|
+
const unsigned int multiples[] = { 3, 5 };
|
25
|
+
TEST_ASSERT_EQUAL(23,
|
26
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
27
|
+
10));
|
22
28
|
}
|
23
29
|
|
24
30
|
void test_sum_of_multiples_of_3_and_5_up_to_100(void)
|
25
31
|
{
|
26
|
-
const unsigned int multiples[] = {3, 5};
|
27
|
-
TEST_ASSERT_EQUAL(2318,
|
32
|
+
const unsigned int multiples[] = { 3, 5 };
|
33
|
+
TEST_ASSERT_EQUAL(2318,
|
34
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
35
|
+
100));
|
28
36
|
}
|
29
37
|
|
30
38
|
void test_sum_of_multiples_of_3_and_5_up_to_1000(void)
|
31
39
|
{
|
32
|
-
const unsigned int multiples[] = {3, 5};
|
33
|
-
TEST_ASSERT_EQUAL(233168,
|
40
|
+
const unsigned int multiples[] = { 3, 5 };
|
41
|
+
TEST_ASSERT_EQUAL(233168,
|
42
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
43
|
+
1000));
|
34
44
|
}
|
35
45
|
|
36
46
|
void test_sum_of_multiples_of_7_13_and_17_up_to_20(void)
|
37
47
|
{
|
38
|
-
const unsigned int multiples[] = {7, 13, 17};
|
39
|
-
TEST_ASSERT_EQUAL(51,
|
48
|
+
const unsigned int multiples[] = { 7, 13, 17 };
|
49
|
+
TEST_ASSERT_EQUAL(51,
|
50
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
51
|
+
20));
|
40
52
|
}
|
41
53
|
|
42
54
|
void test_sum_of_multiples_of_4_and_6_up_to_15(void)
|
43
55
|
{
|
44
|
-
const unsigned int multiples[] = {4, 6};
|
45
|
-
TEST_ASSERT_EQUAL(30,
|
56
|
+
const unsigned int multiples[] = { 4, 6 };
|
57
|
+
TEST_ASSERT_EQUAL(30,
|
58
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
59
|
+
15));
|
46
60
|
}
|
47
61
|
|
48
62
|
void test_sum_of_multiples_of_5_6_and_8_up_to_150(void)
|
49
63
|
{
|
50
|
-
const unsigned int multiples[] = {5, 6, 8};
|
51
|
-
TEST_ASSERT_EQUAL(4419,
|
64
|
+
const unsigned int multiples[] = { 5, 6, 8 };
|
65
|
+
TEST_ASSERT_EQUAL(4419,
|
66
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
67
|
+
150));
|
52
68
|
}
|
53
69
|
|
54
70
|
void test_sum_of_multiples_of_5_and_25_up_to_51(void)
|
55
71
|
{
|
56
|
-
const unsigned int multiples[] = {5, 25};
|
57
|
-
TEST_ASSERT_EQUAL(275,
|
72
|
+
const unsigned int multiples[] = { 5, 25 };
|
73
|
+
TEST_ASSERT_EQUAL(275,
|
74
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
75
|
+
51));
|
58
76
|
}
|
59
77
|
|
60
78
|
void test_sum_of_multiples_of_43_and_47_up_to_10000(void)
|
61
79
|
{
|
62
|
-
const unsigned int multiples[] = {43, 47};
|
63
|
-
TEST_ASSERT_EQUAL(2203160,
|
80
|
+
const unsigned int multiples[] = { 43, 47 };
|
81
|
+
TEST_ASSERT_EQUAL(2203160,
|
82
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
83
|
+
10000));
|
64
84
|
}
|
65
85
|
|
66
86
|
void test_sum_of_multiples_of_1_up_to_100(void)
|
67
87
|
{
|
68
|
-
const unsigned int multiples[] = {1};
|
69
|
-
TEST_ASSERT_EQUAL(4950,
|
88
|
+
const unsigned int multiples[] = { 1 };
|
89
|
+
TEST_ASSERT_EQUAL(4950,
|
90
|
+
sum_of_multiples(multiples, NUM_OF_ELEMENTS(multiples),
|
91
|
+
100));
|
70
92
|
}
|
71
93
|
|
72
94
|
void test_no_multiples_given(void)
|
@@ -0,0 +1,16 @@
|
|
1
|
+
CFLAGS = -std=c99
|
2
|
+
CFLAGS += -Wall
|
3
|
+
CFLAGS += -Wextra
|
4
|
+
CFLAGS += -pedantic
|
5
|
+
CFLAGS += -Werror
|
6
|
+
|
7
|
+
|
8
|
+
test: tests.out
|
9
|
+
@./tests.out
|
10
|
+
|
11
|
+
clean:
|
12
|
+
rm -f *.o *.out
|
13
|
+
|
14
|
+
tests.out: test/test_word_count.c src/word_count.c src/word_count.h
|
15
|
+
@echo Compiling $@
|
16
|
+
@cc $(CFLAGS) src/word_count.c test/vendor/unity.c test/test_word_count.c -o tests.out
|
@@ -0,0 +1,65 @@
|
|
1
|
+
#include <stdlib.h>
|
2
|
+
#include <string.h>
|
3
|
+
#include <ctype.h>
|
4
|
+
#include "word_count.h"
|
5
|
+
|
6
|
+
// checks to see if we are counting a given word:
|
7
|
+
// if word counted already it returns index,
|
8
|
+
// else returns -1
|
9
|
+
static int word_match(char *testWord, int current_word_count,
|
10
|
+
WordCount_Word_t words[MAX_WORDS])
|
11
|
+
{
|
12
|
+
int matchIndex = -1;
|
13
|
+
|
14
|
+
for (int index = 0; index < current_word_count; index++) {
|
15
|
+
if (!strcmp(testWord, words[index].text)) {
|
16
|
+
matchIndex = index;
|
17
|
+
break;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
return matchIndex;
|
21
|
+
}
|
22
|
+
|
23
|
+
int word_count(char *input_text, WordCount_Word_t words[MAX_WORDS])
|
24
|
+
{
|
25
|
+
int index;
|
26
|
+
int uniqueWords = 0;
|
27
|
+
char *testWord;
|
28
|
+
char *lowerCaseInputText; // hold lowercase copy of passed text
|
29
|
+
const char *delimiters = " ,.-\n:!!&@$%^&\"";
|
30
|
+
|
31
|
+
// convert the input text to lower case
|
32
|
+
lowerCaseInputText = malloc(strlen(input_text) + 1);
|
33
|
+
for (index = 0; input_text[index] != 0; index++) {
|
34
|
+
lowerCaseInputText[index] = tolower(input_text[index]);
|
35
|
+
}
|
36
|
+
lowerCaseInputText[index] = '\0';
|
37
|
+
|
38
|
+
// start with known results...
|
39
|
+
memset(words, 0, sizeof(WordCount_Word_t));
|
40
|
+
|
41
|
+
testWord = strtok(lowerCaseInputText, delimiters);
|
42
|
+
while (testWord != NULL) {
|
43
|
+
// account for leading/trailing single quote.
|
44
|
+
if (('\'' == testWord[0]) && ('\'' == testWord[strlen(testWord) - 1])) {
|
45
|
+
testWord[strlen(testWord) - 1] = '\0';
|
46
|
+
testWord++;
|
47
|
+
}
|
48
|
+
// determine index of counted word.
|
49
|
+
index = word_match(testWord, uniqueWords, words);
|
50
|
+
|
51
|
+
// add if not yet counted else increment count.
|
52
|
+
if (-1 == index) {
|
53
|
+
words[uniqueWords].count = 1;
|
54
|
+
strcpy(words[uniqueWords].text, testWord);
|
55
|
+
uniqueWords++;
|
56
|
+
} else {
|
57
|
+
words[index].count++;
|
58
|
+
}
|
59
|
+
// get next word in string
|
60
|
+
testWord = strtok(NULL, delimiters);
|
61
|
+
}
|
62
|
+
|
63
|
+
free(lowerCaseInputText);
|
64
|
+
return uniqueWords;
|
65
|
+
}
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#ifndef _WORD_COUNT_H
|
2
|
+
#define _WORD_COUNT_H
|
3
|
+
|
4
|
+
#define MAX_WORDS 20 // at most MAX_WORDS will be found in the test input string
|
5
|
+
#define MAX_WORD_LENGTH 50 // no individual word will exceed this length
|
6
|
+
|
7
|
+
// results structure
|
8
|
+
typedef struct WordCount_Word {
|
9
|
+
char text[MAX_WORD_LENGTH];
|
10
|
+
int count;
|
11
|
+
} WordCount_Word_t;
|
12
|
+
|
13
|
+
// word_count - routine to classify the unique words and their frequency in a test input string
|
14
|
+
// inputs:
|
15
|
+
// input_text = string no longer than will take (MAX_WORDS * MAX_WORD_LENGTH)
|
16
|
+
// words = allocated structure to record the words fourn and their frequency
|
17
|
+
//
|
18
|
+
// outputs:
|
19
|
+
// uniqueWords - number of words in the words structure
|
20
|
+
int word_count(char *input_text, WordCount_Word_t words[MAX_WORDS]);
|
21
|
+
|
22
|
+
#endif
|