- 有时我们经常会比较俩个字符串之间的内容,而字符串的定义是通过数组定义或指针定义,但无论是哪种,在比较字符串内容时,都会用到指针,即:
对于数组定义:
由以上代码可知,因为arr和brr都是指针,所以arr!=brr检查的不是俩个字符串的内容是否相等,而检查的是俩个字符串的地址是否相同,因为arr和brr储存在不同的位置,所以这俩个地址不可能相同,所以无论输入什么,即使输入的字符串内容相同,它也会出现错误。
对于指针定义则没有这种问题,即:
—————————————— —分割线————————————————
2. 所以,为了解决数组定义出现的问题,引入了strcmp()函数
-
strcmp()有俩个参数,因为该函数比较的是字符串,不是字符,所以其参数应该是字符串(如“apples"和“A”,其本质是地址),而不是字符(如’A’)
-
它比较的是字符串,不是整个数值,也不是字符
-
如果俩个字符串开始的几个字符相同,则strcmp()函数会依次比较每个字符,直到发现第一对不同的字符为止,然后返回相应的值
-
strcmp()的返回值要么是正数,要么是负数,要么是0,它返回一个什么类型的数是由它的参数所决定的。(具体解释见博客strcmp函数中的ASCII)
-
大多数情况下,strcmp()返回的具体值并不重要,我们只在意该值是0还是非0(即比较的俩个字符串是否相等)