(2)编写函数cmpStr(char s1[],char s2[])比较两个字符串s1和 s2的大小。如果s1>s2,返回一个正数;s1=s2,返回0;s1<s2,返回一个负数,在主函数中调用该函数完成字符串的比较操作,并输出返回的值。 要求: ①不允许使用strcmp()函数; ②用fgets()函数在主函数中输入两个字符串; ③实现触摸屏受托人()函数,返回的正数或负数的绝对值应该是进行比较的两个字符传中相应字符的ASCII码的差值。
时间: 2024-02-12 09:06:49 浏览: 89
用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数
以下是实现要求的cmpStr函数的代码:
```c
#include <stdio.h>
int cmpStr(char s1[], char s2[]) {
int i = 0;
while (s1[i] != '\0' || s2[i] != '\0') {
if (s1[i] > s2[i]) {
return s1[i] - s2[i];
} else if (s1[i] < s2[i]) {
return s1[i] - s2[i];
} else {
i++;
}
}
return 0;
}
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串:");
fgets(s1, 100, stdin);
printf("请输入第二个字符串:");
fgets(s2, 100, stdin);
int result = cmpStr(s1, s2);
printf("比较结果为:%d", result);
return 0;
}
```
在该代码中,cmpStr函数首先使用while循环遍历两个字符串,并分别比较每个字符的ASCII码值。如果两个字符不相等,则直接返回它们的差值;如果相等,则继续比较下一个字符。如果遍历完了两个字符串还没有发现不同的字符,则说明两个字符串相等,返回0即可。
在主函数中,使用fgets函数分别读入两个字符串,并调用cmpStr函数进行比较。最后输出比较结果即可。由于fgets函数会将读入的字符串末尾的换行符也读入,因此在比较过程中需要注意判断字符串是否已经结束。
阅读全文