我跟踪这个地方有一段时间了,但这是我的第一个帖子,所以请宽容。
我已经为一个学校项目编写了这个函数,但是不知道如何命名(我们必须创建自己的函数)。问题是,是否有人知道库中是否有类似的函数,以便我知道如何命名?

void function(char *str, int slen)
{
    while(*str) {
        if (slen) {
            *str = *(str + slen);
        } else {
            *str = '\0';
        }

        if (*(str + slen) == '\0') {
            slen = 0;
        }

        str++;
    }
}

它的作用:
将字符串向开头滑动SLEN个字符,用'\0'填充结尾。
例子:
char *str = strdup("I want to remove 8 characters");
function(str, 8);

将我的字符串转换为"remove 8 characters.\0\0\0\0\0\0\0\0\0"

最佳答案

您可以使用memcpy(如果memmovefrom区域重叠,则使用to
然后memset
没有一个函数可以同时执行这两个操作

关于c - 在任何C库中已经有与此类似的功能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20972447/

10-15 16:03