C语言如何比较两个字符串
时间: 2024-09-13 13:02:39 浏览: 53
C语言求两个字符串的最长公共子串
5星 · 资源好评率100%
在C语言中,比较两个字符串通常有两种常见的方式:直接比较和间接比较(使用库函数)。
1. **直接比较**:如果字符串是在常量区或静态存储区域,可以简单地逐个字符逐个位置进行比较。例如:
```c
#include <stdio.h>
int compareStrings(char str1[], char str2[]) {
for (int i = 0; str1[i] != '\0' && str2[i] != '\0'; i++) {
if (str1[i] != str2[i]) {
return (str1[i] - str2[i]);
}
}
// 如果都到达了结束符,说明它们相等
return str1[i] - str2[i];
}
// 使用
char s1[] = "hello";
char s2[] = "world";
if (compareStrings(s1, s2) > 0) {
printf("str1 is greater than str2.\n");
} else if (compareStrings(s1, s2) < 0) {
printf("str1 is less than str2.\n");
} else {
printf("str1 and str2 are equal.\n");
}
```
2. **间接比较(使用库函数)**:更推荐使用标准库函数如`strcmp()`,它会自动处理空字符串和大小写,并返回一个整数值表示比较结果。如果值大于0,第一个字符串大;等于0则相等;小于0则第二个字符串大:
```c
#include <string.h>
int main() {
char s1[] = "Hello";
char s2[] = "hello";
int comparison = strcmp(s1, s2);
if (comparison == 0) {
printf("The strings are equal.\n");
} else if (comparison < 0) {
printf("s1 is less than s2.\n");
} else {
printf("s1 is greater than s2.\n");
}
return 0;
}
```
阅读全文