Minor changes, still unfinished...

This commit is contained in:
Ognjen Milan Robovic 2023-10-19 17:10:50 -04:00
parent ac3db4408c
commit 1b114e9820
2 changed files with 64 additions and 25 deletions

View File

@ -521,7 +521,7 @@ int character_compare_array (char character, char * character_array) {
} }
int string_length (char * string) { int string_length (char * string) {
int length = 0; int length;
if (string == NULL) { if (string == NULL) {
return (0); return (0);
@ -532,29 +532,37 @@ int string_length (char * string) {
return (length); return (length);
} }
void string_reverse (char * string) { char * string_reverse_limit (char * string, int limit) {
int i = 0; int i;
int length = 0;
fatal_failure (string == NULL, "string_reverse: String is null pointer."); fatal_failure (string == NULL, "string_reverse: String is null pointer.");
length = string_length (string); for (i = 0; i != limit / 2; ++i) {
char reverse_0 = string [limit - i];
for (i = 0; string [i] != '\0'; ++i) { char reverse_1 = string [i];
string [i] = string [length - i]; string [i] = reverse_0;
string [limit - i] = reverse_1;
} }
return (string);
} }
void string_delete (char * string, int length) { char * string_reverse (char * string) {
return (string_reverse_limit (string, string_length (string) - 1));
}
char * string_delete (char * string, int length) {
int i; int i;
if ((string == NULL) || (length <= 0)) { if ((string == NULL) || (length <= 0)) {
return; return (string);
} }
for (i = 0; i != length; ++i) { for (i = 0; i != length; ++i) {
string [i] = '\0'; string [i] = '\0';
} }
return (string);
} }
int string_compare (char * string_0, char * string_1) { int string_compare (char * string_0, char * string_1) {
@ -572,7 +580,7 @@ int string_compare (char * string_0, char * string_1) {
return (1); return (1);
} }
void string_copy (char * string_0, char * string_1) { char * string_copy (char * string_0, char * string_1) {
int i = 0; int i = 0;
fatal_failure (string_0 == NULL, "string_copy: Destination string is null pointer."); fatal_failure (string_0 == NULL, "string_copy: Destination string is null pointer.");
@ -581,9 +589,11 @@ void string_copy (char * string_0, char * string_1) {
for (i = 0; i != string_length (string_1) + 1; ++i) { for (i = 0; i != string_length (string_1) + 1; ++i) {
string_0 [i] = string_1 [i]; string_0 [i] = string_1 [i];
} }
return (string_0);
} }
void string_concatenate (char * string_0, char * string_1) { char * string_concatenate (char * string_0, char * string_1) {
fatal_failure (string_0 == NULL, "string_concatenate: Destination string is null pointer."); fatal_failure (string_0 == NULL, "string_concatenate: Destination string is null pointer.");
fatal_failure (string_1 == NULL, "string_concatenate: Source string is null pointer."); fatal_failure (string_1 == NULL, "string_concatenate: Source string is null pointer.");
@ -596,6 +606,8 @@ void string_concatenate (char * string_0, char * string_1) {
} }
* string_0 = '\0'; * string_0 = '\0';
return (string_0);
} }
int string_compare_limit (char * string_0, char * string_1, int limit) { int string_compare_limit (char * string_0, char * string_1, int limit) {
@ -613,22 +625,24 @@ int string_compare_limit (char * string_0, char * string_1, int limit) {
return (1); return (1);
} }
void string_copy_limit (char * string_0, char * string_1, int limit) { char * string_copy_limit (char * string_0, char * string_1, int limit) {
int i = 0; int i = 0;
fatal_failure (string_0 == NULL, "string_copy_limit: Destination string is null pointer."); fatal_failure (string_0 == NULL, "string_copy_limit: Destination string is null pointer.");
fatal_failure (string_1 == NULL, "string_copy_limit: Source string is null pointer."); fatal_failure (string_1 == NULL, "string_copy_limit: Source string is null pointer.");
if (limit <= 0) { if (limit <= 0) {
return; return (string_0);
} }
for (i = 0; i != limit; ++i) { for (i = 0; i != limit; ++i) {
string_0 [i] = string_1 [i]; string_0 [i] = string_1 [i];
} }
return (string_0);
} }
void string_concatenate_limit (char * string_0, char * string_1, int limit) { char * string_concatenate_limit (char * string_0, char * string_1, int limit) {
int i = 0; int i = 0;
int length_0 = 0; int length_0 = 0;
int length_1 = 0; int length_1 = 0;
@ -637,7 +651,7 @@ void string_concatenate_limit (char * string_0, char * string_1, int limit) {
fatal_failure (string_1 == NULL, "string_concatenate_limit: Source string is null pointer."); fatal_failure (string_1 == NULL, "string_concatenate_limit: Source string is null pointer.");
if (limit <= 0) { if (limit <= 0) {
return; return (string_0);
} }
length_0 = string_length (string_0); length_0 = string_length (string_0);
@ -646,6 +660,8 @@ void string_concatenate_limit (char * string_0, char * string_1, int limit) {
for (i = 0; (i != length_1) && (i != limit); ++i) { for (i = 0; (i != length_1) && (i != limit); ++i) {
string_0 [length_0 + i] = string_1 [i]; string_0 [length_0 + i] = string_1 [i];
} }
return (string_0);
} }
int string_split_space (char * string) { int string_split_space (char * string) {
@ -767,4 +783,23 @@ char * decode_byte (int byte) {
return (decode); return (decode);
} }
void number_to_string (int number, char * string) {
int i;
if (number < 0) {
string [0] = '-';
++i;
number *= -1;
}
for (i = (string [0] == '-'); number != 0; ++i) {
string [i] = (char) (number % 10) + '0';
number /= 10;
}
string [i] = '\0';
string_reverse (string);
}
#endif #endif

View File

@ -104,17 +104,19 @@ extern int character_is_hexadecimal (char character);
extern int character_compare_array (char character, char * character_array); extern int character_compare_array (char character, char * character_array);
extern int string_length (char * string); extern int string_length (char * string);
extern void string_reverse (char * string);
extern void string_delete (char * string, int length); extern char * string_reverse_limit (char * string, int limit);
extern char * string_reverse (char * string);
extern char * string_delete (char * string, int length);
extern int string_compare (char * string_0, char * string_1); extern int string_compare (char * string_0, char * string_1);
extern void string_copy (char * string_0, char * string_1); extern char * string_copy (char * string_0, char * string_1);
extern void string_concatenate (char * string_0, char * string_1); extern char * string_concatenate (char * string_0, char * string_1);
extern int string_compare_limit (char * string_0, char * string_1, int limit); extern int string_compare_limit (char * string_0, char * string_1, int limit);
extern void string_copy_limit (char * string_0, char * string_1, int limit); extern char * string_copy_limit (char * string_0, char * string_1, int limit);
extern void string_concatenate_limit (char * string_0, char * string_1, int limit); extern char * string_concatenate_limit (char * string_0, char * string_1, int limit);
extern int string_split_space (char * string); extern int string_split_space (char * string);
@ -131,4 +133,6 @@ extern void terminal_show_cursor (int show);
extern int encode_byte (char * byte); extern int encode_byte (char * byte);
extern char * decode_byte (int byte); extern char * decode_byte (int byte);
extern void number_to_string (int number, char * string);
#endif #endif