写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char *p1,char *p2); 设p1指向字符串s1,p2指向字符串s2。要求:当s1=s2时,返回值为0,若s1≠s2,返回它们二者第1个不同字符的ASCII码差值(如"BOY"与"BAD",第2个字母不同,"O"与"A"之差为79-65=14)。如果s1>s2,则输出正值,如s1<s2,则输出负值。 要求另外再编写一个main函数,调用该函数,上传源代码文件。 要求: strcmp函数无输入输出,main函数可包含输入输出。
时间: 2024-03-02 12:52:59 浏览: 53
好的,这里是实现strcmp函数的代码:
```c
int strcmp(char *p1, char *p2) {
while (*p1 != '\0' && *p2 != '\0') {
if (*p1 != *p2) {
return *p1 - *p2;
}
p1++;
p2++;
}
return *p1 - *p2;
}
```
这里是包含输入输出的main函数:
```c
#include <stdio.h>
int strcmp(char *p1, char *p2);
int main() {
char s1[100], s2[100];
printf("请输入第一个字符串:");
scanf("%s", s1);
printf("请输入第二个字符串:");
scanf("%s", s2);
int result = strcmp(s1, s2);
if (result == 0) {
printf("两个字符串相等\n");
} else {
printf("两个字符串不相等,它们第一个不同的字符的ASCII码差值为:%d\n", result);
}
return 0;
}
```
注意:这里的strcmp函数与C++的strcmp函数不同,C++的strcmp函数返回值为整型,表示两个字符串的大小关系,而我们自己写的strcmp函数返回值为两个字符串第一个不同字符的ASCII码差值。
阅读全文