Embedded System Design 2 - Project
util_string.c File Reference
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>

Go to the source code of this file.

Functions

bool StringStartsWith (char *str, char *seq)
 
bool HexToString (uint8_t *bin, uint8_t binsz, char **result)
 
char * StringToHexString (char *bin, unsigned int binsz, char **result)
 

Function Documentation

◆ HexToString()

bool HexToString ( uint8_t *  bin,
uint8_t  binsz,
char **  result 
)

Definition at line 37 of file util_string.c.

37  {
38  char hex_str[] = "0123456789abcdef";
39  uint8_t i;
40 
41  // ALLOCATE MEMORY
42  // Hex to string/char array: one value becomes two chars (*2)
43  // +1 because of NULL termination
44  // "*result =" ~ Value at memory location gets changed
45  if (!(*result = (char *)malloc(binsz * 2 + 1))){
46  return (false); // Returned when NULL
47  }
48 
49  // Add NULL termination
50  (*result)[binsz * 2] = 0; // Last memory location, "0" ~ '\0'
51 
52  // CHECK MEMORY
53  if (!binsz){
54  return (false); // Returned when NULL
55  }
56 
57  // FILL WITH DATA
58  for (i = 0; i < binsz; i++){
59  (*result)[i * 2 + 0] = hex_str[(bin[i] >> 4) & 0x0F];
60  (*result)[i * 2 + 1] = hex_str[(bin[i] ) & 0x0F];
61  }
62 
63  return (true);
64 }

◆ StringStartsWith()

bool StringStartsWith ( char *  str,
char *  seq 
)

Definition at line 27 of file util_string.c.

27  {
28  uint8_t i;
29  for(i=0; i<strlen(seq); i++){
30  if(*(str+i) != *(seq+i)){
31  return (false);
32  }
33  }
34  return (true);
35 }

◆ StringToHexString()

char* StringToHexString ( char *  bin,
unsigned int  binsz,
char **  result 
)

Definition at line 66 of file util_string.c.

66  {
67  char hex_str[] = "0123456789abcdef";
68  unsigned int i;
69 
70  if (!(*result = (char *)malloc(binsz * 2 + 1))){
71  return (NULL);
72  }
73 
74  (*result)[binsz * 2] = 0;
75 
76  if (!binsz){
77  return (NULL);
78  }
79 
80  for (i = 0; i < binsz; i++){
81  (*result)[i * 2 + 0] = hex_str[(bin[i] >> 4) & 0x0F];
82  (*result)[i * 2 + 1] = hex_str[(bin[i] ) & 0x0F];
83  }
84 
85  return (*result);
86 }