1#include "stdbool.h"
2#include "stdlib.h"
3#include "string.h"
4
5char *prairie_pad_right(char *value, int length, char padding) {
6 int value_length = strlen(value);
7
8 // Don't do any processing if the desired length is below the values length
9 if (length <= value_length)
10 return value;
11
12 char *padded_value = (char *)malloc(length + 1);
13 for (int i = 0; i < length; i++) {
14 if (i < value_length) {
15 padded_value[i] = value[i];
16 } else {
17 padded_value[i] = padding;
18 }
19 }
20 padded_value[length] = '\0';
21
22 return padded_value;
23}
24
25char *prairie_pad_left(char *value, int length, char padding) {
26 int value_length = strlen(value);
27
28 // Don't do any processing if the desired length is below the values length
29 if (length <= value_length)
30 return value;
31
32 char *padded_value = (char *)malloc(length + 1);
33 for (int i = 0; i < length; i++) {
34 if (i < length - value_length) {
35 padded_value[i] = padding;
36 } else {
37 padded_value[i] = value[i - (length - value_length)];
38 }
39 }
40 padded_value[length] = '\0';
41 return padded_value;
42}