我有一个功能void copy(char *temp,char input[length])
。我需要做的是将 temp 的值复制到输入数组中,但从输入数组的末尾开始。
我没有正确地提出问题。这就是我想要做的。
我输入了长度为 20 的数组。我得到了一个值为“test”的临时数组。然后我想在 input[19]=t,input[18]=e 等的输入数组中复制 temp。
现在当我再次调用该函数时,如果我想将 xyz 复制到输入数组,那么 input[15]=x,input[14]=y,input[13]=z。
我想这样做,直到我用所有值填充输入数组。
void copy(char *temp,char input[])
这是函数定义。
现在让我们看看我们必须做什么,
char* temp={"abcde"};
char input[100]={};
//I want to move data from temp into input array such that
printf("%c",input[95]); // gives output as a
printf("%c",input[96]); // gives output as b
这是我到目前为止所写的。
char* copy(char* ptr,char data[])
{
int start=sizeof(data)/sizeof(char)-strlen(data);
int end=start-strlen(ptr);
int j=0;
int counter=0;
for(counter=start;counter>end;counter--)
{
data[counter]=ptr[j++];
}
printf("%s",data);
return data;
}
当我调用这个函数时,我以这种方式得到另一个错误,
char data[100]={};
char* temp={"abcde"};
char* output=copy(temp,data);
data=output;
数据=输出行的 'char*' 到 'char [100]' 分配中的类型不兼容