总之你记住,C的字符串是以'\0'为结束标志的(这就是所谓的cz字符串,z是zero的意思,即以0结尾),写直观代码,搜寻'\0'即可,不要硬性规定字符个数。安全字符串处理函数会多传递一个counter参数限制处理数目,即如果直到counter还没有遇到'\0'也结束,确保不越界处理字符串,这种安全型字符串处理函数后面都带有_s字样,用VC 2005以上编译器编译的时候,会对scanf()/printf()等函数给出警告,劝你使用安全函数,那就是scanf_s()/printf_s(),最经典就是gets(),很容易被溢出攻击,所以尽量使用gets_s(),遇到溢出输入会抛出错误,而不会放行。这是告诉你为什么会出现那个警告的原因,很多人忽略它,当然可以通过编译,但有隐患而已,旧式的C程序都那样,不过我觉得并不需要守大多数的规矩,以为这是微软扩展的东西就嗤之以鼻,以写传统代码为荣,那是拘泥不化。
[
本帖最后由 TonyDeng 于 2013-3-18 00:29 编辑 ]