【发布时间】:2008-11-04 05:15:32
【问题描述】:
为了修剪前导空格,我们使用 strmove。但我们被建议使用 strlmove 而不是 strmove。我已经阅读并使用了 strlcpy 和 strlcat。 strlmove 是否有类似的功能,它的优点是什么?
编辑 1:谢谢 Mike B 和 Chris Young。这就是我们使用 strlcpy 的方式。
size_t strlcpy(char *dst, const char *src, size_t size)
{
strncpy(dst, src, size - 1);
dst[size - 1] = '\0';
return(strlen(src));
}
所以我只是想以同样的方式使用 strlmove() 。我想确认是否定义了有关 strlmove() 实现的任何规范。我知道这是我能问的最好的地方之一。
编辑 2:strlmove() 的实现方式与 strlcpy() 和 strlcat() 使用 memmove() 相同。
size_t strlmove(char *dst, const char *src, size_t size)
{
//Error if the size is 0
//If src length is greater than size;
// memmove(dst, src, size-1) and dst[size] = \0;
//Otherwise
// memmove(dst, src, length(src));
return source len;
}
感谢所提供的帮助和支持。
谢谢, 马修·李菊
【问题讨论】:
-
这是 Google 找到 strlmove() 引用的唯一地方;它更了解 strmove()。
标签: c