如何在C语言中使用strncpy()函数

在本教程中,我们将讨论如何在C语言编程中使用strncpy()函数。C语言中的strncpy函数用于将指定字节的字符从源文件复制到指定的目的地。它被定义在string.h头文件中,在使用该函数之前,需要将其包含在内。

基本用法

strncpy()函数与strcpy()函数类似。然而,与strcpy()不同的是,它从源字符串复制指定数量的字符到目标字符串。

strncpy()的语法如下。

char* strncpy(char *dest, const char* src, size_t n);
复制代码

函数参数

strncpy()函数接受3个参数。

  1. dest- 这是一个指向字符数组的指针,复制后的字符数组将存储在这里。
  2. src- 这个指针指向复制指定字符数组的字符数组。
  3. n- 要从src字符串中复制的最大字符数。

该函数从src中复制n指定的字符数到dest所指向的内存中。

如果函数收到的n的值小于src数组的长度,它将复制指定的n个字符,没有空结尾的字符。

如果n大于src数组的长度,它将把所有带有空尾字符的n个字符复制到dest。

函数的返回值

该函数返回一个指向dest数组的指针。

例1

下面的例子说明了如何使用strncpy()函数。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, world!";
    char dest[20];

    strncpy(dest, src, sizeof(dest));
    printf("Copied string: %s \n", dest);

    return 0;
}
复制代码

在上面的例子程序中,我们指定源字符串的值为。"Hello, world!"。然后我们继续定义目标字符串,并使用strncpy()函数来复制源字符串的大小。

上述程序的输出如图所示。

Copied string: Hello, world!
复制代码

例2

下一个例子的实质是说明如何从源字符串中复制部分字符。例如,要复制前5个字符,我们可以这样做。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, world!";
    char dest[20];

    strncpy(dest, src, 5);
    printf("Partial string: %s \n", dest);

    return 0;
复制代码

在上面的例子程序中,我们只从源字符串中复制了5个字节。由于n的值小于源字符串的长度。目标字符串不是空结尾。

例3

我们可以手动添加一个空结尾的字符,如下面的例子程序所示。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, world";
    char dest[10];

    strncpy(dest, src, 5);
    dest[5] = '\0';
    return 0;
}
复制代码

在上面的例子中,我们在从源字符串复制完目标字节数后,手动添加了一个空的结束符

例4

如果你传递的n值大于源字符串的大小, strncpy()函数会从源字符串中复制所有的字符, 并为剩余的字节添加一系列的空结尾字符。

#include <stdio.h>
#include <string.h>

int main() {
    char src[] = "Hello, world";
    char dest[20];
    strncpy(dest, src, sizeof(src)+5);

    printf("Destination %s \n", dest);
    return 0;
}
复制代码

总结

在本教程中,我们讨论了如何在C语言中使用strncpy()函数。使用这个函数,你可以从一个字符串中复制特定数量的字符到一个目标字符串。

猜你喜欢

转载自juejin.im/post/7125717930519560199