用c语言编写函数strcomp(s1, s2),实现两个字符串的比较,返回值分别为1、0、-1表示s1>s2, s1=s2, s1<s2 的情况。
时间: 2024-02-22 16:56:44 浏览: 126
好的,以下是一个可能的C语言实现:
```c
#include <stdio.h>
#include <string.h>
int strcomp(char *s1, char *s2) {
int cmp = strcmp(s1, s2);
if (cmp == 0) {
return 0;
} else if (cmp > 0) {
return 1;
} else {
return -1;
}
}
int main() {
char s1[] = "hello";
char s2[] = "world";
int result = strcomp(s1, s2);
printf("%d\n", result); // 输出-1,因为s1 < s2
return 0;
}
```
这个函数使用了C语言标准库中的strcmp函数来比较两个字符串。strcmp函数的返回值为零表示两个字符串相等,大于零表示第一个字符串大于第二个字符串,小于零表示第一个字符串小于第二个字符串。根据返回值,我们可以返回1、0或-1,分别表示s1>s2、s1=s2或s1<s2的情况。在main函数中,我们演示了如何使用这个函数来比较两个字符串。
相关问题
编写函数strcomp(s1, s2),实现两个字符串的比较,返回值分别为1、0、-1表示s1>s2, s1=s2, s1<s2 的情况。
好的,我可以帮你编写这个函数。以下是一个可能的实现:
```python
def strcomp(s1, s2):
if s1 == s2:
return 0
elif s1 > s2:
return 1
else:
return -1
```
这个函数接受两个字符串作为输入,首先比较它们是否相等。如果相等,返回0表示它们相等。如果它们不相等,就比较它们的大小。如果s1大于s2,返回1表示s1大于s2,否则返回-1表示s1小于s2。请注意,这个实现是基于字符串的字典顺序比较的,这意味着它将比较字符串中每个字符的Unicode编码值。
c语言编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t时返回-1,s等于t时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求出最小的字符串。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int strcomp(char s[], char t[]) {
int i = 0;
while (s[i] == t[i]) {
if (s[i] == '\0') {
return 0;
}
i++;
}
if (s[i] < t[i]) {
return -1;
} else {
return 1;
}
}
int main() {
char str[4][100];
int i, j, min_index;
printf("请输入4个字符串:\n");
for (i = 0; i < 4; i++) {
fgets(str[i], sizeof(str[i]), stdin);
str[i][strlen(str[i])-1] = '\0'; // 将fgets读入的换行符替换为\0
}
min_index = 0;
for (i = 1; i < 4; i++) {
if (strcomp(str[i], str[min_index]) == -1) {
min_index = i;
}
}
printf("最小的字符串为:%s\n", str[min_index]);
return 0;
}
```
在上面的代码中,我们定义了一个 `strcomp` 函数,用于比较两个字符串的大小。该函数采用了类似于 strcmp 函数的实现方式,通过逐个比较字符串中的字符来判断它们的大小关系。如果两个字符串相等,则返回 0;如果 s 小于 t,则返回 -1;如果 s 大于 t,则返回 1。
在主函数中,我们首先声明一个二维字符数组 `str`,用于存储用户输入的 4 个字符串。然后使用 fgets 函数从标准输入中读入每个字符串,注意要将读入的换行符替换为 \0。接着,我们使用一个 for 循环,依次比较每个字符串的大小,找出其中最小的字符串,并将其对应的下标保存在 `min_index` 变量中。最后,输出最小的字符串即可。
注意,上面的代码中只是采用了一种简单的输入方式,如果需要更加灵活的输入方式,可以使用 scanf 函数等其他输入方法。
阅读全文