“cpp/string/byte/strncat”的版本间的差异

来自cppreference.com
< cpp‎ | string‎ | byte
注解: +
 
第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 );
 
}}
 
}}
  
 后附 {{tt|src}} 所指向的字节字符串到 {{tt|dest}} 所指向的字节字符串。至多复制 {{tt|count}} 个字符。产生的字节字符串是空终止的。
+
 后附 {{|src}} 所指向的字节字符串到 {{|dest}} 所指向的字节字符串。至多复制 {{|count}} 个字符。产生的字节字符串是空终止的。
  
 目标字节字符串必须拥有足够的空间用于连接 {{tt|dest}} 和 {{tt|src}} 的内容加上终止空字符,但 {{tt|src}} 的大小被限制到 {{tt|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}}
  
 
===返回值===
 
===返回值===
{{tt|dest}}
+
{{|dest}}
  
 
===注解===
 
===注解===
 因为 {{tt|strncat}} 需要在每次调用时找到 {{tt|dest}} 的结尾,故用 {{tt|strncat}} 将多个字符串连接成一体是低效的。
+
 因为 {{tt|strncat}} 需要在每次调用时找到 {{|dest}} 的结尾,故用 {{tt|strncat}} 将多个字符串连接成一体是低效的。
  
 
===示例===
 
===示例===
 
{{example
 
{{example
|
+
|code=
| code=
+
#include <cstring>
+
 
#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=
+
|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 个字符。产生的字节字符串是空终止的。

目标字节字符串必须拥有足够的空间用于连接 destsrc 的内容加上终止空字符,但 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 文档