-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstring.c
77 lines (64 loc) · 1.71 KB
/
string.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
#include "string.h"
#include <stdlib.h>
#include "constants.h"
void increase_string_length(STRING *string, int increase) {
char *new_array = (char *) malloc((string->length + increase) * sizeof(char));
char *old_array = string->array;
for (int i = 0; i < string->length; i++) {
new_array[i] = old_array[i];
}
string->length += increase;
string->array = new_array;
free(old_array);
}
void append_string(STRING *line, STRING *append) {
int new_length = line->length + append->length;
char *old_array = line->array;
char *new_array = (char *) malloc(new_length * sizeof(char));
for (int i = 0; i < line->length; i++) {
new_array[i] = old_array[i];
}
for (int i = 0; i < append->length; i++) {
new_array[i + line->length] = append->array[i];
}
line->length = new_length;
free(old_array);
line->array = new_array;
}
STRING * crop_string(STRING *string, int n) {
STRING *new_string = (STRING *) malloc(sizeof(STRING));
new_string->length = string->length - n;
new_string->array = (char *) malloc(new_string->length * sizeof(char));
for (int i = 0; i < new_string->length; i++) {
new_string->array[i] = string->array[i + n];
}
string->length -= new_string->length;
return new_string;
}
char s_equals(char *input, char *compare) {
//int compare = strcmp(string1, string2);
int index = 0;
while (true) {
if (input[index] != compare[index]) {
return false;
} else if (input[index] == 0) {
return true;
}
index++;
}
}
char to_lowercase(char ch) {
if (ch >= 'A' && ch <= 'Z') {
return ch + 32;
}
return ch;
}
char is_empty(STRING *string) {
for (int i = 0; i < string->length; i++) {
char ch = string->array[i];
if (ch != ' ' && ch != '\t' && ch != 0) {
return false;
}
}
return true;
}