C/C中的strncat()函数++

在C/C++中,strncat()是用于字符串处理的预定义函数。 一串H 是字符串函数所需的头文件。 此函数的附加值不超过 N 从src指向的字符串到dest指向的字符串末尾的字符加上一个终止的空字符。字符串的初始字符(src)覆盖字符串(dest)末尾的空字符。因此,字符串的长度(dest)变为strlen(dest)+n。但是,如果字符串的长度(src)小于 N ,只复制直到终止空字符的内容,字符串长度(dest)变为strlen(src)+strlen(dest)。 如果——

null
  • 琴弦重叠。
  • dest数组不够大,无法附加src的内容。

语法:

char *strncat(char *dest, const char *src, size_t n)

参数: 此方法接受以下参数:

  • 目的地 :要追加的字符串。
  • src :将从中追加“n”个字符的字符串。
  • N :表示要追加的最大字符数。size_t是一种无符号整数类型。

返回值: 函数的作用是:返回字符串(dest)的指针。

应用 给定C++中的两个字符串SRC和DEST,我们需要从Src到Dest’附加n’字符,假设n=5。

例如:

Input:  src = "world"        dest = "Hello "Output: "Hello world"Input:  src = "efghijkl"        dest = "abcd"Output: "abcdefghi"

节目:

C++

// C,C++ program demonstrate functionality of strncat()
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
// Take any two strings
char src[50] = "efghijkl" ;
char dest[50]= "abcd" ;
// Appends 5 character from src to dest
strncat (dest, src, 5);
// Prints the string
cout << "Source string : " << src << endl;
cout << "Destination string : " << dest;
return 0;
}
// This code is contributed by shivanisinghss2110


C

// C,C++ program demonstrate functionality of strncat()
#include <stdio.h>
#include <string.h>
int main()
{
// Take any two strings
char src[50] = "efghijkl" ;
char dest[50]= "abcd" ;
// Appends 5 character from src to dest
strncat (dest, src, 5);
// Prints the string
printf ( "Source string : %s" , src);
printf ( "Destination string : %s" , dest);
return 0;
}


输出:

Source string : efghijklDestination string : abcdefghi

strncat()与strcat()有何不同? 许多程序员建议,与strcat()相比,strcat()是安全的,因为strcat()不检查复制数据的大小,并且在到达空终止符之前复制,这可能会导致缓冲区溢出,而strncat()检查复制数据的大小,并且只复制“n”字节。

C++

// C,C++ program demonstrate difference between
// strncat() and strcat()
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
// Take any two strings
char src[50] = "forgeeks" ;
char dest1[50] = "geeks" ;
char dest2[50] = "geeks" ;
cout << "Before strcat() function execution, " ;
cout << "destination string : " << dest1 << endl;
// Appends the entire string of src to dest1
strcat (dest1, src);
// Prints the string
cout << "After strcat() function execution, " ;
cout << "destination string : " << dest1 << endl;
cout << "Before strncat() function execution, " ;
cout << "destination string : " << dest2 << endl;
// Appends 3 characters from src to dest2
strncat (dest2, src, 3);
// Prints the string
cout << "After strncat() function execution, " ;
cout << "destination string : " << dest2 << endl;
return 0;
}
// this code is contributed by shivanisinghss2110


C

// C,C++ program demonstrate difference between
// strncat() and strcat()
#include <stdio.h>
#include <string.h>
int main()
{
// Take any two strings
char src[50] = "forgeeks" ;
char dest1[50] = "geeks" ;
char dest2[50] = "geeks" ;
printf ( "Before strcat() function execution, " );
printf ( "destination string : %s" , dest1);
// Appends the entire string of src to dest1
strcat (dest1, src);
// Prints the string
printf ( "After strcat() function execution, " );
printf ( "destination string : %s" , dest1);
printf ( "Before strncat() function execution, " );
printf ( "destination string : %s" , dest2);
// Appends 3 characters from src to dest2
strncat (dest2, src, 3);
// Prints the string
printf ( "After strncat() function execution, " );
printf ( "destination string : %s" , dest2);
return 0;
}


输出:

Before strcat() function execution, destination string : geeksAfter strcat() function execution, destination string : geeksforgeeksBefore strncat() function execution, destination string : geeksAfter strncat() function execution, destination string : geeksfor

本文由 阿卡什·古普塔 .如果你喜欢GeekSforgek,并想贡献自己的力量,你也可以使用 写极客。组织 或者把你的文章寄去评论-team@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。 如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享