【发布时间】:2018-04-26 04:12:44
【问题描述】:
就像下面的一个问题,我必须使用指针概念在 mystrcpy2 函数中将数组从一个复制到另一个,这与不使用指针概念的 mystrcpy 函数不同。无论如何,我输入了我的答案,“dest = src;”这对我来说似乎过于简单但正确的答案。但是当我输入诸如“Hello World”之类的输入时,它会显示为“Hello World ???”就像后面的奇怪字母。但是当我输入像“abc”这样的短词时,结果就是“abc”。 是电脑问题还是我做错了什么?
我还想知道“while (*src) *dest++=*src++;”是否也有效?
/*完成mystrcpy2()函数,将src指向的空终止字符串复制到dest指向的字符串。 mystrcpy2() 应该与使用基于索引的数组遍历方法的 mystrcpy() 给出相同的结果。 请注意,在实现 mystrcpy2() 时不允许添加局部变量。 编写并提交“mystrcpy2()”函数的源代码。 */
#include <stdio.h>
void mystrcpy(char dest[], char src[])
{
int i=0,j=0;
while (src[i])
dest[j++] = src[i++];
}
void mystrcpy2(char *dest, char *src)
{
dest = src;
}
int main(void)
{
char mystr1[256];
char mystr2[256];
gets(mystr1);
mystrcpy(mystr2, mystr1);
puts(mystr2);
mystrcpy2(mystr2, mystr1);
puts(mystr2);
return 0;
}
【问题讨论】: