-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.c
145 lines (112 loc) · 3.21 KB
/
main.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
bool very_well_named(int len, char* token) {
if (!isupper(token[0])
&& !isalpha(token[0])) {
return false;
}
//printf("running loop\n");
for (int i = 1; i < len; i++)
{
//printf("%c\n", token[i]);
if (isdigit(token[i]) || !isalpha(token[i]) || isupper(token[i]))
{
//printf("Not very well named: %s\n", token);
return false;
}
}
if (len < 0 || len > 8)
{
return false;
}
return true;
}
bool well_named(int len, char* token) {
if (!isupper(token[0])
&& !isalpha(token[0])) {
return false;
}
for (int i = 1; i < len; i++)
{
//printf("%c\n", token[i]);
if (isdigit(token[i]) || token[i] == '_' || !isalpha(token[i]) || isupper(token[i]))
{
//printf("Not well named: %c\n", token[i]);
return false;
}
}
return len <= 9;
}
bool matches_criteria(char * token) {
// Does the token match the criteria?
/*
// Naming conventions
// 1. VWN: Xxxxxxxx - 8 continguous characters or less
// 2. WN: Xxxxxxxxx, xxxxxx, XXXXXX, 9 contigious characters or more
*/
// Find the length of the token
int len = strlen(token);
// check if VWN
if(very_well_named(len, token)) {
printf("VWN: \n");
return true;
}
//Check if WN
if(well_named(len, token)) {
printf("WN: \n");
return true;
}
return false;
}
void read_csv(const char * filename) {
FILE * fp = fopen(filename, "r");
if (fp == NULL) {
printf("Could not open file %s", filename);
return;
} else {
printf("Opened file %s\n", filename);
char line[1024];
while (fgets(line, 1024, fp)) {
char * token = strtok(line, ",");
//Skip the first token
if (token != NULL)
{
token = strtok(NULL, ",");
}
if (token != NULL && matches_criteria(token)) {
// Does the token match the criteria?
printf(" %s\n", token);
}
strtok(NULL, ","); // Skip column 3
strtok(NULL, ","); // skip column 4
}
}
fclose(fp);
}
int main(int argc, // Num of strings in array argv
char* argv[], // Array holding the command line argument strings
char ** envp // array of environment variable strings
) {
printf("Hello, World!\n");
int count;
// Display each command line argument
printf_s("\nCommand Line arguments: \n");
for (count = 0; count < argc; ++count) {
printf_s("argv[%d] %s\n", count, argv[count]);
}
if (argc > 1)
{
//read the csv file
read_csv(argv[1]);
} else {
printf_s("No arguments passed.\n");
}
//Display environment variables
/*while(*envp != NULL)
printf_s("%s\n", *(envp++));
*/
return 0;
}