C语言strcmp函数代码
时间: 2024-04-05 09:25:55 浏览: 72
```c
#include <stdio.h>
#include <string.h>
int main () {
char str1[15];
char str2[15];
int ret;
strcpy(str1, "abcdef");
strcpy(str2, "ABCDEF");
ret = strcmp(str1, str2);
if(ret < 0) {
printf("str1 小于 str2");
} else if(ret > 0) {
printf("str1 大于 str2");
} else {
printf("str1 等于 str2");
}
return(0);
}
```
相关问题
c语言strcmp函数源代码
下面是C语言中strcmp函数的源代码:
```c
int strcmp(const char *s1, const char *s2) {
while (*s1 && (*s1 == *s2)) {
s1++;
s2++;
}
return *(const unsigned char*)s1 - *(const unsigned char*)s2;
}
```
该函数用于比较两个字符串s1和s2,返回值为0表示两个字符串相等,否则返回两个字符串第一个不相同字符的ASCII码差值。该函数会遍历两个字符串,直到找到第一个不相同的字符为止。
C语言strcmp函数
C语言中的`strcmp()`函数用于比较两个字符串是否相等[^1]。它接受两个`const char*`类型的参数,即指向两个字符串的指针。该函数执行逐字符的比较,如果找到不同的字符,则返回相应的ASCII码差值。当字符串完全相等时,返回0;若第一个字符串大于第二个,返回正数;若第一个字符串小于第二个,返回负数。
在提供的示例代码中,`strcmp(arr1, arr2)`会返回一个整数值。由于其可能返回的是任何正数(如1、2、3...)表示arr1大于arr2,任何负数(如-1、-2、-3...)表示arr1小于arr2,以及0表示两者相等。因此,正确的判断条件应为`ret > 0`代表arr1大于arr2,`ret < 0`代表arr1小于arr2。
例如:
```c
#include <stdio.h>
#include <string.h>
int main() {
char arr1[] = "abcd";
char arr2[] = "abq";
int ret = strcmp(arr1, arr2);
if (ret > 0) {
printf("arr1大于arr2");
} else if (ret < 0) {
printf("arr1小于arr2");
} else {
printf("arr1等于arr2");
}
return 0;
}
```
在这个例子中,由于"abcd"大于"abq",输出将是"arr1大于arr2"。
阅读全文