C语言编写函数实现strncat的功能
时间: 2024-04-16 13:26:42 浏览: 22
你可以使用以下代码来实现一个类似于 `strncat` 的函数:
```c
#include <stdio.h>
char* my_strncat(char* dest, const char* src, int n) {
char* p = dest; // 保存目标字符串的起始位置
// 找到目标字符串的末尾
while (*dest != '\0') {
dest++;
}
// 将源字符串的字符逐个拼接到目标字符串中
while (*src != '\0' && n > 0) {
*dest = *src;
dest++;
src++;
n--;
}
*dest = '\0'; // 在目标字符串末尾添加结束符
return p; // 返回目标字符串的起始位置
}
int main() {
char str1[20] = "Hello";
char str2[] = " World!";
int n = 6;
printf("Before strncat: %s\n", str1);
my_strncat(str1, str2, n);
printf("After strncat: %s\n", str1);
return 0;
}
```
这个函数的原理是,先找到目标字符串的末尾,然后逐个将源字符串的字符拼接到目标字符串中,最后在目标字符串末尾添加结束符。注意,在拼接过程中需要控制拼接的字符个数,以避免越界访问。
在上面的示例中,我们使用 `my_strncat` 函数将 `str2` 的前 6 个字符拼接到 `str1` 的末尾。输出结果为:
```
Before strncat: Hello
After strncat: Hello World!
```
希望能对你有所帮助!
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)