“cpp/string/byte/strncat”的版本间的差异
来自cppreference.com
(→注解: +) |
小 |
||
第1行: | 第1行: | ||
− | {{cpp/title| strncat}} | + | {{cpp/title|strncat}} |
{{cpp/string/byte/navbar}} | {{cpp/string/byte/navbar}} | ||
− | {{ddcl | header=cstring | | + | {{ddcl|header=cstring| |
− | char *strncat( char *dest, const char *src, std::size_t count ); | + | char* strncat( char* dest, const char* src, std::size_t count ); |
}} | }} | ||
− | 后附 {{ | + | 后附 {{|src}} 所指向的字节字符串到 {{|dest}} 所指向的字节字符串。至多复制 {{|count}} 个字符。产生的字节字符串是空终止的。 |
− | 目标字节字符串必须拥有足够的空间用于连接 {{ | + | 目标字节字符串必须拥有足够的空间用于连接 {{|dest}} 和 {{|src}} 的内容加上终止空字符,但 {{|src}} 的大小被限制到 {{|count}}。 |
若字符串重叠则行为未定义。 | 若字符串重叠则行为未定义。 | ||
第13行: | 第13行: | ||
===参数=== | ===参数=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | dest |指向要后附到的空终止字节字符串的指针}} | + | {{par|dest|指向要后附到的空终止字节字符串的指针}} |
− | {{par | src |指向作为复制来源的字符数组的指针}} | + | {{par|src|指向作为复制来源的字符数组的指针}} |
− | {{par | count |要复制的最大字符数}} | + | {{par|count|要复制的最大字符数}} |
{{par end}} | {{par end}} | ||
===返回值=== | ===返回值=== | ||
− | {{ | + | {{|dest}} |
===注解=== | ===注解=== | ||
− | 因为 {{tt|strncat}} 需要在每次调用时找到 {{ | + | 因为 {{tt|strncat}} 需要在每次调用时找到 {{|dest}} 的结尾,故用 {{tt|strncat}} 将多个字符串连接成一体是低效的。 |
===示例=== | ===示例=== | ||
{{example | {{example | ||
− | + | |code= | |
− | + | ||
− | + | ||
#include <cstdio> | #include <cstdio> | ||
+ | |||
int main() | int main() | ||
{ | { | ||
char str[50] = "Hello "; | char str[50] = "Hello "; | ||
− | char str2[50] = "World!"; | + | char str2[50] = "World!"; |
std::strcat(str, str2); | std::strcat(str, str2); | ||
− | std::strncat(str, " Goodbye World!", 3); | + | std::strncat(str, " Goodbye World!", 3); |
std::puts(str); | std::puts(str); | ||
} | } | ||
− | + | |output= | |
Hello World! Go | Hello World! Go | ||
}} | }} | ||
第45行: | 第44行: | ||
===参阅=== | ===参阅=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/string/byte/dsc strcat}} | + | {{dsc inc|cpp/string/byte/dsc strcat}} |
− | {{dsc inc | cpp/string/byte/dsc strcpy}} | + | {{dsc inc|cpp/string/byte/dsc strcpy}} |
− | {{dsc see c | c/string/byte/strncat}} | + | {{dsc see c|c/string/byte/strncat}} |
{{dsc end}} | {{dsc end}} | ||
{{langlinks|de|en|es|fr|it|ja|pt|ru}} | {{langlinks|de|en|es|fr|it|ja|pt|ru}} |
2024年3月9日 (六) 08:38的最后版本
在标头 <cstring> 定义
|
||
char* strncat( char* dest, const char* src, std::size_t count ); |
||
后附 src 所指向的字节字符串到 dest 所指向的字节字符串。至多复制 count 个字符。产生的字节字符串是空终止的。
目标字节字符串必须拥有足够的空间用于连接 dest 和 src 的内容加上终止空字符,但 src 的大小被限制到 count。
若字符串重叠则行为未定义。
目录 |
[编辑] 参数
dest | - | 指向要后附到的空终止字节字符串的指针 |
src | - | 指向作为复制来源的字符数组的指针 |
count | - | 要复制的最大字符数 |
[编辑] 返回值
dest
[编辑] 注解
因为 std::strncat
需要在每次调用时找到 dest 的结尾,故用 std::strncat
将多个字符串连接成一体是低效的。
[编辑] 示例
运行此代码
#include <cstdio> #include <cstring> int main() { char str[50] = "Hello "; const char str2[50] = "World!"; std::strcat(str, str2); std::strncat(str, " Goodbye World!", 3); // 可能引发 "输出被截断" 警告 std::puts(str); }
输出:
Hello World! Go
[编辑] 参阅
连接两个字符串 (函数) | |
复制字符串给另一个 (函数) | |
strncat 的 C 文档
|