请编写函数str_cmp实现两个字符串的比较。 函数原型:str_cmp(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,则输出负值。 程序运行结果示例1: Please input two strings: China↙ Chinese↙ They are different and the difference is -4. 程序运行结果示例2: Please input two strings: Hello↙ Hello↙ They are the same.
时间: 2024-02-22 11:58:42 浏览: 87
设计Strcmp算法,实现两个字符串的比较
下面是函数str_cmp的代码实现:
```
int str_cmp(char *p1, char *p2) {
int i = 0;
while (*(p1 + i) != '\0' || *(p2 + i) != '\0') {
if (*(p1 + i) != *(p2 + i)) {
return *(p1 + i) - *(p2 + i);
}
i++;
}
return 0;
}
```
在主函数中,可以按照以下方式调用函数:
```
int main() {
char s1[100], s2[100];
printf("Please input two strings: ");
scanf("%s %s", s1, s2);
int result = str_cmp(s1, s2);
if (result == 0) {
printf("They are the same.\n");
} else {
printf("They are different and the difference is %d.\n", result);
}
return 0;
}
```
在输入两个字符串后,调用函数str_cmp比较它们的值,如果相等则输出"They are the same.",否则输出"They are different and the difference is "加上两个字符串第一个不同字符的ASCII码差值。
阅读全文