设计函数实现字符串复制功能。每个字符串长度不超过100。不要使用系统提供的strcpy函数。 输入要求 从键盘读入一个字符串到数组b中,以换行符结束。 输出要求 将内容复制到另一个数组a中,并分别输出数组a和数组b中的内容。 输入样例 Frank comes from Thailand. 输出样例 String a is:Frank comes from Thailand. String b is:Frank comes from Thailand. 模板 #include <stdio.h> @-@ int main() { char a[101],b[101],*p1,*p2; int i; gets(b); mystrcpy(a,b); printf("String a is:%s\n",a); printf("String b is:%s\n",b); return 0; }
时间: 2024-01-10 16:03:56 浏览: 35
好的,这是一个经典的字符串复制问题。下面是一个简单的实现:
```c
#include <stdio.h>
void mystrcpy(char *dest, char *src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int main() {
char a[101], b[101];
char *p1 = a, *p2 = b;
fgets(b, 101, stdin);
mystrcpy(a, b);
printf("String a is:%s\n", a);
printf("String b is:%s\n", b);
return 0;
}
```
在`mystrcpy`函数中,我们使用指针变量`dest`和`src`来遍历字符串,并将`src`中的字符复制到`dest`中。每次循环,我们使用`*`运算符来访问指针指向的字符,然后将该字符复制到目标字符串中。注意,在复制完所有字符后,我们需要在目标字符串的末尾添加空字符,否则目标字符串可能会包含未知字符,从而导致程序崩溃。
在`main`函数中,我们先使用`fgets`函数读入源字符串`b`,然后调用`mystrcpy`函数复制该字符串到目标字符串`a`中。最后,我们分别输出目标字符串和源字符串的内容。注意,我们在`mystrcpy`函数中使用指针变量来处理字符串,而不是使用数组名。这是因为数组名在传递给函数时会被转换成指针,所以我们直接使用指针变量可以避免不必要的复杂性。