This repository has been archived on 2021-07-03. You can view files and clone it, but cannot push or open issues or pull requests.
glovechat/src/util/etc.c
2019-05-05 14:30:58 -05:00

71 lines
1.3 KiB
C

#include "etc.h"
#include <string.h>
#include <ctype.h>
int axtoi(const char* str) {
int value = 0, i;
for(i = 0; i < strlen(str); ++i) {
value *= 16;
if(str[i] >= '0' && str[i] <= '9')
value += str[i] - '0';
else if(str[i] >= 'a' && str[i] <= 'f')
value += (str[i] - 'a') + 10;
else if(str[i] >= 'A' && str[i] <= 'F')
value += (str[i] - 'A') + 10;
}
return value;
}
int strcnt(const char* str, char c) {
int cnt = 0, i;
for(i = 0; i < strlen(str); ++i)
if(str[i] == c)
++cnt;
return cnt;
}
char* strtrans(char* str, trans_func_t func) {
int length = strlen(str), i;
for(i = 0; i < length; ++i)
str[i] = func(str[i]);
return str;
}
char* strlower(char* str) {
return strtrans(str, tolower);
}
char* strupper(char* str) {
return strtrans(str, toupper);
}
char* ltrim(char* str) {
int length = strlen(str), i;
for(i = 0; i < length; ++i)
if(str[i] > ' ')
break;
if(i > 0)
strcpy(str, str + i);
return str;
}
char* rtrim(char* str) {
int length = strlen(str), i;
for(i = length - 1; i >= 0; --i) {
if(str[i] <= ' ')
str[i] = '\0';
else
break;
}
return str;
}
char* trim(char* str) {
return ltrim(rtrim(str));
}