我正在尝试编写一个函数,它允许我使用我编写的一个名为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}}的内容,但我不确定这是否会奏效。
我是一个新手,所以请耐心等待我
答案 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;
}