实现一个字符串大小比较函数,若有两个字符串s1和s2,s1与s2相等返回0,s1>s2返回正数,s1<s2返回负数c语言‘’
时间: 2024-05-09 20:17:40 浏览: 131
好的,这是一个比较简单的字符串大小比较函数的实现:
```
#include <string.h>
int compare(char *s1, char *s2) {
int len1 = strlen(s1);
int len2 = strlen(s2);
int len = len1 < len2 ? len1 : len2;
for (int i = 0; i < len; i++) {
if (s1[i] != s2[i]) {
return s1[i] - s2[i];
}
}
return len1 - len2;
}
```
这个函数会根据两个输入的字符串的大小关系,返回一个正数、负数或者0。如果输入的两个字符串相等,那么返回0;如果s1比s2大,那么返回一个正数;如果s1比s2小,那么返回一个负数。
相关问题
c语言编写函数比较字符串大小,若有两个字符串s1和s2,s1与s2相等返回0,s1>s2返回1,s1<s2返回-1。
可以使用strcmp函数来比较两个字符串的大小,该函数在string.h头文件中定义。strcmp函数返回值为整型,如果s1>s2,返回正数;如果s1=s2,返回0;如果s1<s2,返回负数。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int compare_strings(char s1[], char s2[]) {
int result = strcmp(s1, s2);
if(result > 0) {
return 1;
} else if(result == 0) {
return 0;
} else {
return -1;
}
}
int main() {
char s1[] = "hello";
char s2[] = "world";
int result = compare_strings(s1, s2);
printf("%d", result);
return 0;
}
```
输出结果为-1,表示s1<s2。
本关任务:编写函数比较字符串大小,若有两个字符串s1和s2,s1与s2相等返回0,s1>s2返回1,s1<s2返回-1。c语言
好的,以下是实现该功能的 C 语言代码示例:
```c
#include <stdio.h>
#include <string.h>
int cmpString(char s1[], char s2[]) {
int len1 = strlen(s1), len2 = strlen(s2);
int minLen = len1 < len2 ? len1 : len2;
for (int i = 0; i < minLen; i++) {
if (s1[i] < s2[i]) {
return -1;
} else if (s1[i] > s2[i]) {
return 1;
}
}
if (len1 == len2) {
return 0;
} else if (len1 < len2) {
return -1;
} else {
return 1;
}
}
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串:\n");
scanf("%s", s1);
printf("请输入第二个字符串:\n");
scanf("%s", s2);
int res = cmpString(s1, s2);
if (res == 0) {
printf("两个字符串相等\n");
} else if (res == 1) {
printf("%s > %s\n", s1, s2);
} else {
printf("%s < %s\n", s1, s2);
}
return 0;
}
```
函数 `cmpString` 接受两个字符数组作为参数,依次比较它们的每一个字符,如果遇到不同的字符,就可以根据它们的 ASCII 码值来判断哪个字符串更大。如果两个字符串前面的字符都相同,就比较它们的长度,长度更长的字符串更大。在 `main` 函数中,我们获取用户输入的两个字符串,调用 `cmpString` 函数进行比较,并输出比较结果。
阅读全文