字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍 C语言中符串处理函数 strcat()和strncat() 的区别使用方法,以及相关的示例代码。

1、strcat()

将 src 字符串连接到 dest 的尾部,‘\0’也会追加到结尾,代码如下,

#include <stdio.h>
#include <string.h>
/*
char *strcat(char *dest, const char *src); 
参数
dest:目的字符串首地址
src:源字符首地址

返回值
成功:返回 dest 字符串的首地址
失败:NULL

*/ 
int main()
{
    char str1[6] = "hello";  
    char str2[6] = "world";  
    strcat(str1,str2);
 
    printf("str1 = %s\n",str1);  
    printf("str2 = %s\n",str2);
 
    int len = strlen(str1);
    printf("len的长度:%d\n",len);
    
    return 0;  
}

2、strncat()

将 src 字符串前 n 个字符连接到 dest 的尾部,‘\0’也会追加到结尾。代码如下,

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

/*
char *strncat(char *dest, const char *src, size_t n); 
参数
dest:目的字符串首地址
src:源字符首地址
n:指定需要追加字符串个数

返回值
成功:返回 dest 字符串的首地址
失败:NULL
*/ 
int main()
{
   char destin[30]="cjavapy";
   char *str=" https://www.cjavapy.com"; 
   int n=19;
   char *newStr=strncat(destin,str,n); 
   printf("%s\n",newStr);
   return 0;
}

3、strcat()和strncat()区别

strcat()把src所指向的字符添加到dest结尾处(覆盖原dest结尾处的'\0'),并添加新的'\0'strncat()把所指向的字符的前n个字符添加到dest结尾处(覆盖原dest结尾处的'\0'),并添加新的'\0'。代码如下,

#include <stdio.h>
#include <string.h>
int main(void)
{
    char dest[20] = "Hello";
    char *src = ", World!";
    char numbers[] = "12345678";
    
    printf("dest before strcat: \"%s\"\n", dest); // "Hello"
    
    strcat(dest, src);
    printf("dest after strcat:  \"%s\"\n", dest); // "Hello, World!"
    
    strncat(dest, numbers, 3); // strcat first 3 chars of numbers
    printf("dest after strncat: \"%s\"\n", dest); // "Hello, World!123"
    return 0;

}

推荐文档