strcmp如何比较大小
时间: 2023-11-20 16:57:52 浏览: 92
strcmp函数可以用来比较两个字符串的大小,其返回值表示比较结果的大小关系。具体来说,如果str1和str2相等,返回值为0;如果str1小于str2,返回值为一个负数;如果str1大于str2,返回值为一个正数。strcmp函数按照字典序逐个比较两个字符串中的字符,直到出现不同的字符或者遇到字符串结束符'\0'为止。下面是一个例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[] = "hello";
char str2[] = "world";
int result = strcmp(str1, str2);
if (result == 0) {
printf("str1 and str2 are equal\n");
} else if (result < 0) {
printf("str1 is less than str2\n");
} else {
printf("str1 is greater than str2\n");
}
return 0;
}
```
上面的代码中,我们定义了两个字符串str1和str2,然后使用strcmp函数比较它们的大小,并根据比较结果输出相应的信息。在这个例子中,由于str1小于str2,所以输出"str1 is less than str2"。
相关问题
利用strcmp与strcpy比较大小
利用strcmp函数可以比较两个字符串的大小。strcmp函数会按照字典序逐个比较两个字符串中对应位置的字符,直到找到不同的字符或者其中一个字符串结束。比较的结果有三种可能:
1. 如果两个字符串相等,strcmp函数返回0。
2. 如果第一个字符串在字典序上小于第二个字符串,strcmp函数返回一个负数。
3. 如果第一个字符串在字典序上大于第二个字符串,strcmp函数返回一个正数。
而strcpy函数则是用于将一个字符串复制到另一个字符串中。它会将源字符串中的字符逐个复制到目标字符串中,直到遇到字符串结束符'\0'。
下面是一个使用strcmp和strcpy比较大小的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[20] = "World";
int result = strcmp(str1, str2);
if (result == 0) {
printf("str1和str2相等\n");
} else if (result < 0) {
printf("str1小于str2\n");
} else {
printf("str1大于str2\n");
}
strcpy(str1, str2);
printf("复制后的str1:%s\n", str1);
return 0;
}
```
字符串比较大小不用strcmp
字符串比较大小可以使用以下方法:
1. 直接按照ASCII码进行比较。即将两个字符串的每个字符依次进行比较,如果相同则继续比较下一个字符,如果不同则返回它们的ASCII码差值。
2. 将两个字符串转化为数字,然后进行比较。可以先将字符串转化为整数类型,然后比较大小。
3. 利用string类型的compare函数进行比较。该函数会返回一个整数,如果两个字符串相同则返回0,如果第一个字符串小于第二个字符串则返回负数,如果第一个字符串大于第二个字符串则返回正数。
4. 自己实现一个字符串比较函数。可以自己编写一个函数,按照ASCII码进行比较,依次比较每个字符的ASCII码大小。