ASSERT(strcasecmp("Hello", "Hello") == 0);
ASSERT(strcasecmp("hellO", "Hello") == 0);
-
char buf[13];
+ memset(buf, 127, sizeof(buf));
+ ASSERT(buf[0] == 127); ASSERT(buf[4] == 127);
+ strncpy(buf, "hello", 4);
+ ASSERT(buf[3] == 'l'); ASSERT(buf[4] == 127);
+ strncpy(buf, "hello", 8);
+ ASSERT(buf[4] == 'o'); ASSERT(buf[5] == '\0'); ASSERT(buf[7] == '\0'); ASSERT(buf[8] == 127);
+
memset(buf, 0, 13);
ASSERT(buf[0] == 0); ASSERT(buf[12] == 0);
ASSERT(memchr("\xffhello", 'x', 6) == NULL);
+
+ const char *teststr_foo = "foo";
+ ASSERT(strchr(teststr_foo, 'f') == teststr_foo+0);
+ ASSERT(strchr(teststr_foo, 'o') == teststr_foo+1);
+ ASSERT(strchr(teststr_foo, '\0') == teststr_foo+3);
+ ASSERT(strchr(teststr_foo, 'X') == NULL);
+ ASSERT(strrchr(teststr_foo, 'f') == teststr_foo+0);
+ ASSERT(strrchr(teststr_foo, 'o') == teststr_foo+2);
+ ASSERT(strrchr(teststr_foo, '\0') == teststr_foo+3);
+ ASSERT(strrchr(teststr_foo, 'X') == NULL);
}
EXPORT char *strncpy(char *dst, const char *src, size_t num)
{
char *to = dst;
- while(*src && num--) *to++ = *src++;
- *to = '\0';
+ while(num --)
+ {
+ if(*src)
+ *to++ = *src++;
+ else
+ *to++ = '\0';
+ }
return dst;
}
*/
EXPORT size_t strlen(const char *str)
{
- size_t retval;
- for(retval = 0; *str != '\0'; str++, retval++);
- return retval;
+ size_t len = 0;
+ while(str[len] != '\0')
+ len ++;
+ return len;
}
/**
*/
EXPORT size_t strnlen(const char *str, size_t maxlen)
{
- size_t len;
- for( len = 0; maxlen -- && *str; str ++, len ++ )
- ;
+ size_t len = 0;
+ while( len < maxlen && str[len] != '\0' )
+ len ++;
return len;
}
EXPORT char *strrchr(const char *_str, int character)
{
const unsigned char* str = (const unsigned char*)_str;
- for( int i = strlen(_str); i--; )
+ for( size_t i = strlen(_str); i--; )
{
if(str[i] == character)
return (void*)&str[i];