有时候一些固定的函数虽然头文件里有,直接调用就可以,但我们也需要了解他们的基本原理,简单的甚至自己可以尝试写一下。
就如同strcmp()函数,包含在头文件string.h里,我们可以写一个mystrcmp来代替。
我们可以看到,在子函数mystrcmp里实现了strcmp的功能,首先要知道传递的是字符串数组的首地址,也就是数组名。对字符数组首地址操作时,加1并不是向后移一个字节,而是两个字节,也就是指向str[1],同理整形数组就是移动4个字节,这样大家就能看懂子函数里的对地址操作了,从第一个到出现‘\0’结束。大家都知道,在字符型数组里,默认的最后一个元素后面会有一个‘\0’,以此来方面计算机知道输出到这个地方结束,否则后面会默认输出0。第20行是个for循环语句,从第一个开始,一直到str1和str2都等于‘\0’且i<MAX为止,这个判断语句很重要!大家一定要理解!尤其是*(str1+i)!=‘\0’ ||*(str2+i)=‘\0’ 在for循环里从第一位开始比较,如果相同则继续,如果不相同则采用三目运算比较,大返回1,小返回-1。由此来实现比较功能。