编写一个类似库函数strcat()的函数,实现两个字符串的连接,并在main()函数中验证该自定义函数的功能
时间: 2024-03-01 15:51:40 浏览: 62
可以使用指针变量来实现类似库函数 `strcat()` 的函数,实现两个字符串的连接。下面是一个示例代码:
```c
#include <stdio.h>
char *my_strcat(char *dest, char *src) {
char *p = dest;
while (*p) {
p++;
}
while (*src) {
*p++ = *src++;
}
*p = '\0';
return dest;
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
char *result = my_strcat(str1, str2);
printf("连接后的字符串为:%s\n", result);
return 0;
}
```
在函数 `my_strcat()` 中,首先将指针变量 `p` 指向字符串 `dest` 的末尾,即字符串的结束符 `'\0'` 的位置。然后使用一个 `while` 循环遍历字符串 `src`,将其中的字符逐一复制到 `dest` 的末尾,并将指针变量 `p` 向后移动一位。最后在字符串 `dest` 的末尾添加结束符 `'\0'`,并返回字符串 `dest` 的首地址。
在 `main()` 函数中,首先定义两个字符数组 `str1` 和 `str2`,并使用 `scanf()` 函数从标准输入中分别读取两个字符串。然后调用函数 `my_strcat()`,将两个字符数组的首地址分别作为参数传递给函数。最后输出函数返回的连接后的字符串即可。
需要注意的是,函数 `my_strcat()` 中没有对字符串 `dest` 的长度进行检查,如果字符串 `dest` 的空间不足以容纳字符串 `src`,则可能会发生数组越界等错误。在实际使用中,应该对字符串 `dest` 的长度进行检查,以确保程序的稳定性。
阅读全文