c - 传递给 strncat 的计数值有疑问

标签 c string

假设我有一个大小为 10 个字符的数组(memset 为 0),我将其作为目标传递给 strncat,并且在源代码中我传递一个长度为 20 个字符的字符串(空终止),现在我应该将“计数”传递为 10 还是 9?

疑问是,strncpy 是将“计数”视为目标缓冲区的大小,还是只是将 10 个字符复制到目标,然后在第 11 个位置附加一个 NULL 终止字符。

很抱歉,如果这个问题看起来太琐碎了,但我无法从 strncpy 的帮助文档中弄清楚这一点。

最佳答案

你应该只是 read the man page多一点。执行句似乎是这个:

The strncat() function is similar, except that it will use at most n characters from src. Since the result is always terminated with '\0', at most n+1 characters are written.

关于c - 传递给 strncat 的计数值有疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2172006/

相关文章:

c# - 删除字符串末尾的数字 C#

string - str::as_bytes 和 CString::as_bytes_with_nul 之间有区别吗?

c++ - 如何在 c++ 中没有数组/算法的情况下在两个条件下对字符串进行排序?

ruby - 在数据库中查找每条记录,识别并删除字符串的一部分,然后将记录重新保存到数据库

c++ - C/C++ 中浮点常量的紧凑无损表示

C新手。我的程序有两个部分,但整个程序同时弹出

C - scanf() 接受两个输入而不是一个

c - 如何离开(中断)waitpid()函数?

c - 如何在C中定义枚举类型(enum)?

python - 列表中字符串中间的正则表达式 (Python)