C语言编写函数实现strncat的功能
时间: 2024-04-16 20:26:41 浏览: 73
下面是用C语言编写的函数,实现strncat的功能:
```c
#include <stdio.h>
#include <string.h>
char* my_strncat(char* dest, const char* src, size_t n) {
size_t dest_len = strlen(dest);
size_t i;
for (i = 0; i < n && src[i] != '\0'; i++) {
dest[dest_len + i] = src[i];
}
dest[dest_len + i] = '\0';
return dest;
}
int main() {
char str1[20] = "Hello ";
char str2[] = "world!";
printf("Before: %s\n", str1);
my_strncat(str1, str2, 6);
printf("After: %s\n", str1);
return 0;
}
```
这个函数的原理是先找到目标字符串 `dest` 的末尾位置,然后从源字符串 `src` 的开头开始,逐个将字符复制到目标字符串的末尾,直到复制了 `n` 个字符或者遇到了源字符串的结尾符 `\0`。最后,将目标字符串末尾添加一个结尾符 `\0`。在上面的示例中,我们将 `"world!"` 的前6个字符复制到了 `"Hello "` 后面,所以最终的结果是 `"Hello world!"`。
阅读全文