(1)设计一个算法Strcmp(s,t),以字典顺序比较两个英文字母串s和t的大小,假设两个串均以顺序串存储。用相关数据进行测试。c语言
时间: 2024-10-23 16:07:53 浏览: 31
设计Strcmp(s,t)算法,实现两个字符串s和t的比较
5星 · 资源好评率100%
为了设计一个名为`strcmp`的算法,用于按字典顺序比较两个英文字符串`s`和`t`,我们可以编写以下C语言函数。这个函数会逐字符地比较两串,并返回一个整数值:
```c
#include <stdio.h>
#include <string.h>
int strcmp(const char *s, const char *t) {
while (*s && *t && *s == *t) { // 比较直到找到第一个不同的字符或者两者结束
s++;
t++;
}
// 如果*s比*t大,返回正数;如果*t比*s大,返回负数;相等则返回0
return (*s > *t) ? 1 : (*s < *t) ? -1 : 0;
}
// 测试示例
int main() {
char str1[] = "apple";
char str2[] = "banana";
char str3[] = "apple"; // 字符串相等
printf("str1 (%s) vs str2 (%s): %d\n", str1, str2, strcmp(str1, str2)); // 输出结果应为负数
printf("str1 (%s) vs str3 (%s): %d\n", str1, str3, strcmp(str1, str3)); // 输出结果应为0
printf("str2 (%s) vs str3 (%s): %d\n", str2, str3, strcmp(str2, str3)); // 输出结果应为正数
return 0;
}
```
在这个例子中,`strcmp`函数通过逐字符比较并跳过相同的字符,直到遇到不同的字符为止。然后根据两个字符的字典顺序决定返回值。
阅读全文