1.分割字符串
int main()
{
const char* p = "@.#";
char arr[] = "ssss@jjjj.kkkk#hhhh";
char buf[50] = { 0 };
strcpy(buf, arr);
char* str = NULL;
for (str = strtok(buf, p); str != NULL; str=strtok(NULL, p))
{
printf("%s\n", str);
}
return 0;
}
strtok函数返回被分解的第一个子字符串,如果没有可检索的字符串,则返回一个空指针,我们可以利用这个特点来分割字符串。
2.memmove函数是将一个字符串转移到另一个数组中,下面是memmove的模拟
void* my_memmove(void* dest, const void* src, int count)
{
assert(dest && src);
void* ret = dest;
if (dest < src)
{
while (count--)
{
*(char*)dest = *(const char*)src;
++(char*)dest;
++(char)src;
}
}
else
{
*((char*)dest + count) = *((const char*)src + count);
--(char*)dest;
--(char*)src;
}
return ret;
}
3.memcpy函数是将一个字符串转复制另一个数组中,下面是memcpy的模拟
void* my_memcpy(void* dest, const void* src, int count)
{
assert(dest && src);
void* ret = dest;
while (count--)
{
*(char*)dest = *(const char*)src;
++(char*)dest;
++(char)src;
}
return ret;
}
4.memset函数是将目标字符串初始化