自己实现strncat
时间: 2023-12-13 11:29:31 浏览: 80
strncat函数用于将指定长度的字符串拼接到目标字符串的末尾。自己实现strncat的代码如下:
```c
char *my_strncat(char *dest, const char *src, size_t n) {
char *p = dest + strlen(dest);
while (*src != '\0' && n-- > 0) {
*p++ = *src++;
}
*p = '\0';
return dest;
}
```
相关问题
c语言模拟实现strncat
#include <stdio.h>
#include <string.h>
char *strncat_(char *dest, const char *src, size_t n)
{
char *p = dest + strlen(dest);
while (*src && n--)
{
*p++ = *src++;
}
*p = '\0';
return dest;
}
int main()
{
char s1[20] = "hello";
char s2[] = "world";
printf("s1 before strncat_: %s\n", s1);
strncat_(s1, s2, 3);
printf("s1 after strncat_: %s\n", s1);
return 0;
}
C语言编写函数实现strncat的功能
下面是用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!"`。
阅读全文