当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 strncpy()用法及代码示例


C库函数char *strncpy(char *dest, const char *src, size_t n)从指向的字符串中复制最多 n 个字符,通过srcdest.如果 src 的长度小于 n 的长度,则 dest 的剩余部分将用空字节填充。

字符数组称为字符串。

声明

以下是数组的声明 -

char stringname [size];

例如 - char string[50];长度为 50 个字符的字符串

初始化

  • 使用单字符常量 -
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 使用字符串常量 -
char string[10] = "Hello":;

Accessing− 有一个控制字符串 "%s" 用于访问字符串,直到遇到“\0”。

strncpy() 函数

  • 该函数用于将源字符串的 ‘n’ 个字符复制到目标字符串中。

  • 目标字符串的长度大于或等于源字符串。

语法如下 -

strncpy (Destination string, Source String, n);

示例程序

以下是 strncpy() 函数的 C 程序 -

#include<string.h>
main ( ){
   char a[50], b[50];
   printf ("enter a string");
   gets (a);
   strncpy (b,a,3);
   b[3] = '\0';
   printf ("copied string = %s",b);
   getch ( );
}

输出

执行上述程序时,会产生以下结果 -

Enter a string:Hello
Copied string = Hel

它还用于提取子字符串。

例子1

下面的例子展示了 strncpy() 函数的用法。

char result[10], s1[15] = "Jan 10 2010";
strncpy (result, &s1[4], 2);
result[2] = ‘\0’

输出

执行上述程序时,会产生以下结果 -

Result = 10

例子2

让我们看另一个关于 strncpy 的例子。

下面给出的是使用 strncpy 库函数将 n 个字符从源字符串复制到目标字符串的 C 程序 -

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring source and destination strings//
   char source[45],destination[50];
   char destination1[10],destination2[10],destination3[10],destination4[10];
   //Reading source string and destination string from user//
   printf("Enter the source string:");
   gets(source);
   //Extracting the new destination string using strncpy//
   strncpy(destination1,source,2);
   printf("The first destination value is:");
   destination1[2]='\0';//Garbage value is being printed in the o/p because always assign null value before printing O/p//
   puts(destination1);
   strncpy(destination2,&source[8],1);
   printf("The second destination value is:");
   destination2[1]='\0';
   puts(destination2);
   strncpy(destination3,&source[12],1);
   printf("The third destination value is:");
   destination3[1]='\0';
   puts(destination3);
   //Concatenate all the above results//
   strcat(destination1,destination2);
   strcat(destination1,destination3);
   printf("The modified destination string:");
   printf("%s3",destination1);//Is there a logical way to concatenate numbers to the destination string?//
}

输出

执行上述程序时,会产生以下结果 -

Enter the source string:Tutorials Point
The first destination value is:Tu
The second destination value is:s
The third destination value is:i
The modified destination string:Tusi3

相关用法


注:本文由纯净天空筛选整理自Bhanu Priya大神的英文原创作品 What is strncpy() Function in C language?。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。