c语言编写一个比较两个字符串s和t大小的函数strcomp(s,t),要求s小于t时返回-1,s等于t时返回0,s大于t时返回1。在主函数中任意输入4个字符串,利用该函数求出最小的字符串。
时间: 2024-02-01 09:17:00 浏览: 75
以下是示例代码:
```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 函数等其他输入方法。
阅读全文