cutil/string.h

51 lines
No EOL
1.5 KiB
C

#ifndef __CUTIL_STRING_H
#define __CUTIL_STRING_H
#include "cutypes.h"
#define DBCS2SBCS(dbcs) ((char)(dbcs&0xFF))
typedef u16 dbcs_t;
size_t cu_strlen(const char* str);
void cu_strcpy(char* dst, const char* src);
void cu_strncpy(char* dst, const char* src, size_t maxLen);
const char* cu_strchr(const char* src, char chr);
const char* cu_strrchr(const char* src, char chr);
int cu_strcmp(const char* src, const char* dst);
int cu_strncmp(const char* haystack, char* needle);
int cu_strcasecmp(const char* src, const char* dst);
char cu_toupper(char c);
char cu_tolower(char c);
size_t cu_chrlen(char chr);
dbcs_t cu_chr2dbcs(const char* chr);
size_t cu_dbcslen(dbcs_t chr);
void cu_dbcs2str(dbcs_t* dbcs, char* str, size_t maxStr);
void cu_iprints(char* str, iword number);
void cu_uprints(char* str, uword number);
void cu_xprints(char* str, uword number);
iword cu_atoi(char* str, int base);
uword cu_atou(char* str, int base);
// all integer arguments must be iword or uword, strings - pointers
// format: d - decimal signed, u - unsigned, x - hexadecimal
// p - pointer address, s - zero-terminated string.
// to print % use %% format
void cu_sprintf(char* dst, size_t maxLen, const char* fmt, ...);
// all integer arguments must be iword or uword,
// for strings pass pointer and next size of the buffer
// example: cu_sscanf((char*)str4, "\"%s\" %d", str5, 8, &val5);
// where %s is str5 buffer pointer and 8 is size of buffer
// and &val5 is pointer to iword integer
void cu_sscanf(char* buf, char* fmt, ...);
#endif