51 lines
No EOL
1.5 KiB
C
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 |