strcpy与strcpy_s和scanf与scanf_s区别
(1)scanf与scanf_s
char[30] = searchName; scanf_s("%s", searchName,30); scanf("%s", searchName);
scanf_s是编辑器推荐的写法,比如微软的vs,它加强了读取一个数组的边界检测,就是第三个参数,用来定义可以读取多少个长度的值。
(2)strcpy和strcpy_s
上面这两个都用于值赋值
1 strcpy(names1, names2); 2 strcpy_s(names1, strlen(names2) + 1, names2);
使用strcpy_s一般的做法就是将长度定为被复制的字符串长度+1,因为strlen()返回字符串长度,但是不包括字符串末尾的空字符,所以+1。
穷则独善其身,达则兼济天下……