Skip to content

Commit 45d9c42

Browse files
author
Gonzalo Diaz
committed
[REFACTOR] [Hacker Rank] Warmup: Time Conversion solved ✅. Triying to fix sonarlint detected issues.
1 parent 3ef2f99 commit 45d9c42

File tree

1 file changed

+10
-13
lines changed

1 file changed

+10
-13
lines changed

src/lib/exercises/src/hackerrank/warmup/time_conversion.c

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,23 @@ char *HACKERRANK_WARMUP_getStringFragment(const char *s, unsigned long len,
4040
}
4141

4242
char *HACKERRANK_WARMUP_timeConversion(const char *s) {
43+
if (s == NULL) {
44+
return NULL;
45+
}
46+
47+
const unsigned int TIME_SIZE = 11; // hh:mm:ssXX 10 + 1 for null terminator
48+
4349
char *meridian = HACKERRANK_WARMUP_getLast(s, 2);
4450
char *hour_str = HACKERRANK_WARMUP_getFirst(s, 2);
4551

46-
char *time_str = (char *)malloc((strlen(s) + 1) * sizeof(char));
47-
if (time_str == NULL) {
48-
free(hour_str);
49-
free(meridian);
50-
return NULL;
51-
}
52+
char time_str[TIME_SIZE];
5253
strcpy(time_str, s);
53-
char *temp_time_str;
54+
const char *temp_time_str;
5455
unsigned long time_str_len = strlen(time_str);
5556
temp_time_str = HACKERRANK_WARMUP_getLast(time_str, time_str_len - 2);
56-
free(time_str);
57-
time_str = temp_time_str;
57+
strcpy(time_str, temp_time_str);
5858
temp_time_str = HACKERRANK_WARMUP_getFirst(time_str, time_str_len - 2);
59-
free(time_str);
60-
time_str = temp_time_str;
59+
strcpy(time_str, temp_time_str);
6160

6261
char *endptr;
6362
long hour = strtol(hour_str, &endptr, 10);
@@ -67,7 +66,6 @@ char *HACKERRANK_WARMUP_timeConversion(const char *s) {
6766

6867
free(hour_str);
6968
free(meridian);
70-
free(time_str);
7169
free(endptr);
7270
return NULL;
7371
} else {
@@ -87,7 +85,6 @@ char *HACKERRANK_WARMUP_timeConversion(const char *s) {
8785
snprintf(conversion, BUFFER_MAX_SIZE, "%02ld%s", hour, time_str);
8886
free(hour_str);
8987
free(meridian);
90-
free(time_str);
9188

9289
return conversion;
9390
}

0 commit comments

Comments
 (0)