-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstring.c
More file actions
110 lines (92 loc) · 2.45 KB
/
string.c
File metadata and controls
110 lines (92 loc) · 2.45 KB
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include "string.h"
size_t strlen(const char *str)
{
size_t i = 0;
while(str[i])
i++;
return i;
}
size_t strcmp(const char *str1, const char *str2)
{
size_t i = 0;
while (str1[i] && str2[i])
{
if (str1[i] != str2[i])
break;
i++;
}
return str1[i] - str2[i];
}
void strcpy(char *dest, const char *source)
{
size_t i = 0;
while (source[i])
{
dest[i] = source[i];
i++;
}
}
void strcat(char* dest, const char *source)
{
size_t start,i;
start = strlen(dest);
i = 0;
while (source[i])
{
dest[start+i] = source[i];
i++;
}
}
char hextochar(byte hex)
{
static const char values[] = "0123456789abcdef";
if (hex < 16)
return values[hex];
return -1;
}
void bytetostr(byte value, char buffer[3])
{
buffer[2] = '\0';
buffer[1] = hextochar(value & 0xF);
buffer[0] = hextochar(value >> 4);
}
void wordtostr(word value, char buffer[5])
{
buffer[4] = '\0';
buffer[3] = hextochar(value & 0x00FF);
buffer[2] = hextochar((value >> 4) & 0xF);
buffer[1] = hextochar((value >> 8) & 0xF);
buffer[0] = hextochar((value >> 12) & 0xF);
}
void dwordtostr(dword value, char buffer[9])
{
buffer[8] = '\0';
buffer[7] = hextochar(value & 0xF);
buffer[6] = hextochar((value >> 4) & 0xF);
buffer[5] = hextochar((value >> 8) & 0xF);
buffer[4] = hextochar((value >> 12) & 0xF);
buffer[3] = hextochar((value >> 16) & 0xF);
buffer[2] = hextochar((value >> 20) & 0xF);
buffer[1] = hextochar((value >> 24) & 0xF);
buffer[0] = hextochar((value >> 28) & 0xF);
}
void qwordtostr(qword value, char buffer[17])
{
buffer[16] = '\0';
buffer[15] = hextochar(value & 0xF);
buffer[14] = hextochar((value >> 4) & 0xF);
buffer[13] = hextochar((value >> 8) & 0xF);
buffer[12] = hextochar((value >> 12) & 0xF);
buffer[11] = hextochar((value >> 16) & 0xF);
buffer[10] = hextochar((value >> 20) & 0xF);
buffer[9] = hextochar((value >> 24) & 0xF);
buffer[8] = hextochar((value >> 28) & 0xF);
buffer[7] = hextochar((value >> 32) & 0xF);
buffer[6] = hextochar((value >> 36) & 0xF);
buffer[5] = hextochar((value >> 40) & 0xF);
buffer[4] = hextochar((value >> 44) & 0xF);
buffer[3] = hextochar((value >> 48) & 0xF);
buffer[2] = hextochar((value >> 52) & 0xF);
buffer[1] = hextochar((value >> 56) & 0xF);
buffer[0] = hextochar((value >> 60) & 0xF);
}