C语言编写一个函数comp(s1,s2)实现两个字符串的比较。 如果s1=s2,则函数返回值为0;如果s1≠s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如s1<s2则输出负值。 两个字符串s1,s2由main函数输入,strcmp函数的返回值也在main函数输出。
时间: 2023-12-03 14:47:35 浏览: 145
用一个函数实现两个字符串的比较,即自己写一个 strcmp 函数
下面是实现该函数的代码:
```c
int comp(char *s1, char *s2) {
int i = 0;
while (s1[i] && s2[i] && s1[i] == s2[i]) {
i++;
}
return s1[i] - s2[i];
}
```
该函数接收两个指向字符串的指针 `s1` 和 `s2`,然后在循环中逐个比较它们的字符。如果在某个位置上两个字符不同,那么函数就会返回它们的 ASCII 码之差。如果循环结束时两个字符串完全相同,则函数返回 0。如果 `s1` 大于 `s2`,则返回正值;如果 `s1` 小于 `s2`,则返回负值。
可以在 `main` 函数中调用 `comp` 函数进行字符串比较,如下所示:
```c
#include <stdio.h>
int comp(char *s1, char *s2);
int main() {
char s1[100], s2[100];
printf("请输入两个字符串:\n");
scanf("%s%s", s1, s2);
int result = comp(s1, s2);
if (result == 0) {
printf("两个字符串相等。\n");
} else {
printf("两个字符串不相等,它们第一个不同字符的ASCII码差值为%d。\n", result);
}
return 0;
}
```
阅读全文