char复制功能

时间:2014-02-04 02:27:34

标签: c

我正在尝试编写一个函数,它允许我使用我编写的一个名为strLength的函数来计算传递的字符数,然后将除了一个NULL终止符之外的mallocate数,然后复制字符并返回副本

到目前为止,我有:

int strLength(char* toCount)
{
    int count = 0;

    while(*toCount != '\0')
    {
        count++;
        toCount++;
    }

    return count;
}

char* strCopy(char *s)
{
    int length = strLength(s);

    char *copy = malloc(length+1);

    while(s != '\0')
    {

        s++;
    }

    return copy;
}

strCopy是我需要帮助的功能。我也不能使用strcpy或memcpy,我只是自己写这个来创建自己的字符串库。我认为在s++ copy += s之前我应该​​有{{1}}的内容,但我不确定这是否会奏效。

我是一个新手,所以请耐心等待我

2 个答案:

答案 0 :(得分:1)

从最后到开头的复制看起来像一个快速的方法 检查NULL分配。

char* strCopy(char *s) {
  int length = strLength(s) + 1;
  char *copy = malloc(length);
  if (copy != NULL) {
    while (length > 0) {
      length--;
      copy[length] = s[length];
    }
  }
  return copy;
}

答案 1 :(得分:0)

试试这个。它为我工作。我希望这会有所帮助。

char* strCopy(char *s)
    {
        char *copy = (char*) malloc(strLength(s) + 1);
        int index = 0;
        while(s[index] != '\0')
        {
            copy[index] = s[index];
            index++;
        }
        return copy;
    }