Dem*_*rio 5 c arrays string strcat
考虑这段代码:
limit = sizeof(str1)-strlen(str1)-1;
strncat(str1,str2,limit);
Run Code Online (Sandbox Code Playgroud)
如果str2长度大于limit,strncatNul是否终止str1或者我必须添加此代码,就像在strncpy?的情况下一样?
str1[sizeof(str1)-1] = '\0'
Run Code Online (Sandbox Code Playgroud)
它始终为null终止.
引用C11,章节§7.24.3.2,(强调我的)
该
strncat函数追加的字符数不超过n字符(空字符及其后面的字符未附加),从指向的数组到s2指向的字符串的末尾s1.最初的字符s2覆盖了结尾处的空字符s1.终止空字符始终附加到结果.
而且,脚注
因此,可以在指向的数组中结束的最大字符数
s1是strlen(s1)+n+1.
| 归档时间: |
|
| 查看次数: |
3491 次 |
| 最近记录: |