我无法弄清楚以下两个实现之间到底有什么区别:charstr[20]="HelloWorld";_strnset(str,'*',5);和charstr[20]="HelloWorld";memset(str,'*',5);它们都产生以下结果:输出:*****世界!他们之间有偏好吗? 最佳答案 _strnset知道它正在处理一个字符串,因此将尊重空终止符。memset没有,所以不会。至于偏好,memset同时在C和C++标准中,_strnset两者都不在。如果可用,_strnset可以在您编写错误代码时避免缓冲区溢出。如果您知道自己将