自定义以下函数StrLen()和StrCpy();要求分别实现标准库函数strlen()和strcpy()的功能,但是不能使用strlen()和strcpy()。 ② 编写主函数测试StrLen()、StrCpy()。
时间: 2023-11-21 09:05:14 浏览: 49
好的,我明白了。下面是我对您的问题的回答:
对于您的第一个问题,我可以为您提供以下代码示例实现 StrLen() 和 StrCpy() 函数:
```c
#include <stdio.h>
int StrLen(char *str) {
int len = 0;
while (*str != '\0') {
len++;
str++;
}
return len;
}
void StrCpy(char *dest, char *src) {
while (*src != '\0') {
*dest = *src;
dest++;
src++;
}
*dest = '\0';
}
int main() {
char str1[20], str2[20];
printf("请输入字符串 str2:\n");
scanf("%s", str2);
printf("字符串 str2 的长度为 %d\n", StrLen(str2));
StrCpy(str1, str2);
printf("复制后的字符串 str1 为 %s\n", str1);
return 0;
}
```
该代码中,StrLen() 函数通过遍历字符串,逐个判断字符是否为结束符 '\0',从而计算出字符串的长度。StrCpy() 函数通过遍历源字符串,逐个将字符复制到目标字符串中,直到遇到结束符 '\0',从而实现字符串的复制功能。
接下来,您可以在主函数中调用这两个自定义函数,并输入字符串进行测试。注意,这里使用的 scanf() 函数可能存在安全问题,建议使用更安全的 fgets() 函数进行输入。