函数字面理解记忆:strcmp前缀str表示是在<string.h>里的函数,cmp是compare(比较)的缩写,表示两个字符串进行大小比较。
比较原理:两个字符串分别从第一个字符开始比较,一直往后找到不同的字符停止并比较,返回-1或者1;如果都同时到了字符0则表示相同字符串,返回0。
函数的传入值和返回值: (int) strcmp(char* arr,char*brr);
strcmp(arr,brr) 可以看成arr-brr,如果前者大就返回1 arr-brr>0; 后者大返回-1 arr-brr<0; 相同则返回0,arr-brr=0。
函数的自我实现:
int my_strcmp(char*arr,char*brr) {
while (*arr != '\0' || *brr != '\0') { //当且仅当两个字符串此处字符都是字符0的时候停止,也表 示两者是相同的字符串,所以退出循环直接返回0
if (*arr != *brr)return *arr <*brr?-1:1; //判断每次两者字符是否相同,不同就用三目返回-1或1
++arr;
++brr; //如果这次两个是相同的,都往后移动一位。
}
return 0;
}