[SDK:CRT] Implement wcscpy_s() and wcscat_s()
This commit is contained in:
parent
b0b7be0837
commit
67ab5dc5d4
@ -26,7 +26,7 @@ wcslen (
|
||||
ptr = str;
|
||||
while (*ptr++);
|
||||
|
||||
return (const char*)ptr - (const char*)str - sizeof(wchar_t);
|
||||
return ptr - str;
|
||||
}
|
||||
|
||||
size_t
|
||||
@ -39,9 +39,12 @@ wcsnlen (
|
||||
size_t len;
|
||||
|
||||
len = 0;
|
||||
while (len < maxlen && str[len++]);
|
||||
while (len < maxlen && *str) {
|
||||
len++;
|
||||
str++;
|
||||
}
|
||||
|
||||
return len - sizeof(wchar_t);
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
@ -127,3 +130,41 @@ wcsstr (
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
wchar_t *
|
||||
wcscpy_s (
|
||||
wchar_t *dest,
|
||||
size_t maxlen,
|
||||
const wchar_t *src
|
||||
)
|
||||
|
||||
{
|
||||
for (size_t i = 0; i < maxlen; i++, src++) {
|
||||
dest[i] = *src;
|
||||
|
||||
if (!*src) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
||||
wchar_t *
|
||||
wcscat_s (
|
||||
wchar_t *dest,
|
||||
size_t maxlen,
|
||||
const wchar_t *src
|
||||
)
|
||||
|
||||
{
|
||||
for (size_t i = wcsnlen(dest, maxlen); i < maxlen; i++, src++) {
|
||||
dest[i] = *src;
|
||||
|
||||
if (!*src) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return dest;
|
||||
}
|
||||
|
@ -31,6 +31,8 @@ int wcscmp(const wchar_t* s1, const wchar_t* s2);
|
||||
int wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n);
|
||||
wchar_t *wcschr(const wchar_t *wcs, wchar_t wc);
|
||||
wchar_t *wcsstr(const wchar_t *haystack, const wchar_t *needle);
|
||||
wchar_t *wcscpy_s(wchar_t *dest, size_t maxlen, const wchar_t *src);
|
||||
wchar_t *wcscat_s(wchar_t *dest, size_t maxlen, const wchar_t *src);
|
||||
|
||||
wchar_t *wmemset(wchar_t *dest, wchar_t c, size_t count);
|
||||
wchar_t *wmemcpy(wchar_t *dest, const wchar_t *src, size_t count);
|
||||
|
Loading…
Reference in New Issue
Block a user