比较两个字符串前缀的大小(不使用strncmp)c语言
时间: 2024-11-15 11:34:38 浏览: 25
在C语言中,如果你需要比较两个字符串的前缀而不使用`strncmp()`函数,你可以手动遍历字符串,直到找到第一个字符不相同的点。以下是一个简单的示例:
```c
#include <stdio.h>
#include <string.h>
int comparePrefix(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
// 如果长度不同,则短的字符串作为前缀更小
if (len1 != len2) {
return len1 < len2 ? -1 : 1;
}
// 遍历字符串,逐字比较
for (int i = 0; str1[i] == str2[i]; i++) {
if (i == len1 - 1) {
// 如果两个字符串完全一样,返回0表示它们有相同的前缀
return 0;
}
}
// 找到的第一个不同字符决定了前缀的顺序
return str1[i] - str2[i];
}
int main() {
char str1[] = "apple";
char str2[] = "apples";
int result = comparePrefix(str1, str2);
if (result < 0) {
printf("str1的前缀较短\n");
} else if (result > 0) {
printf("str2的前缀较长\n");
} else {
printf("str1和str2有相同的前缀\n");
}
return 0;
}
```
阅读全文