mirror of
https://github.com/theoludwig/libcproject.git
synced 2024-11-14 16:03:13 +01:00
48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
|
#include "character.h"
|
||
|
|
||
|
#include <stdbool.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
#include "string.h"
|
||
|
|
||
|
void character_append(char* string, const char character) {
|
||
|
size_t length = string_get_length(string);
|
||
|
character_append_at(string, character, length);
|
||
|
}
|
||
|
|
||
|
void character_append_at(char* string, const char character, const size_t index) {
|
||
|
size_t length = string_get_length(string);
|
||
|
for (size_t index_string = length; index_string > index; index_string--) {
|
||
|
string[index_string] = string[index_string - 1];
|
||
|
}
|
||
|
string[index] = character;
|
||
|
string[length + 1] = '\0';
|
||
|
}
|
||
|
|
||
|
char character_to_upper(const char character) {
|
||
|
if (character >= 'a' && character <= 'z') {
|
||
|
return character + ('A' - 'a');
|
||
|
}
|
||
|
return character;
|
||
|
}
|
||
|
|
||
|
char character_to_lower(const char character) {
|
||
|
if (character >= 'A' && character <= 'Z') {
|
||
|
return character - ('A' - 'a');
|
||
|
}
|
||
|
return character;
|
||
|
}
|
||
|
|
||
|
bool character_get_is_digit(const char character) {
|
||
|
return character >= '0' && character <= '9';
|
||
|
}
|
||
|
|
||
|
unsigned char character_get_alphabet_position(const char character) {
|
||
|
const char letter = character_to_lower(character);
|
||
|
unsigned char position = 0;
|
||
|
if (letter >= 'a' && letter <= 'z') {
|
||
|
position = (letter - 'a') + 1;
|
||
|
}
|
||
|
return position;
|
||
|
}
|