用C语言请编写函数str_cmp实现两个字符串的比较。 函数原型:str_cmp(char *p1,char *p2) 说明: 设p1指向字符串s1,p2指向字符串s2。要求当时,返回值为0;若,返回二者第1个不同字符的ASCII码差值(如“BOY”与“BAD”,第2个字母不同,“O”与“A”之差为79-65=14);如果,则输出正值;如果,则输出负值。 程序运行结果示例1: Please input two strings: China↙ Chinese↙ They are different an
时间: 2024-03-04 07:47:49 浏览: 46
以下是函数str_cmp的代码实现:
```c
int str_cmp(char *p1, char *p2) {
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
return (*p1 - *p2);
}
```
函数解释:
- 首先,定义一个指向字符的指针p1和另一个指向字符的指针p2。
- 然后,用while循环遍历两个字符串,当两个指针所指的字符相同时,继续向后移动指针;当两个指针所指的字符不同时,返回它们的ASCII码差值。
- 最后,如果两个字符串的所有字符都相同,则返回0。
需要注意的是,此函数假设两个字符串的长度相同。如果两个字符串长度不同,可能会导致不可预测的结果。
相关问题
用C语言实现,请编写函数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,则输出负值。
下面是函数str_cmp的实现:
```c
int str_cmp(char *p1, char *p2) {
while(*p1 && *p2 && *p1 == *p2) {
p1++;
p2++;
}
return *p1 - *p2;
}
```
该函数首先利用while循环比较两个字符串中每一个字符的ASCII码值,直到遇到不同的字符或者字符串结束为止。如果两个字符串相等,则返回0;如果不相等,则返回第一个不同字符的ASCII码差值。最后,如果s1>s2,则输出正值;如果s1<s2,则输出负值。
请编写函数str_cmp实现两个字符串的比较。 函数原型:str_cmp(char *p1,char *p2) 说明: 设p1指向字符串s1,p2指向字符串s2。要求当时,返回值为0;若,返回二者第1个不同字符的ASCII码差值(如“BOY”与“BAD”,第2个字母不同,“O”与“A”之差为79-65=14);如果,则输出正值;如果,则输出负值。
下面是函数str_cmp的实现:
```c
int str_cmp(char* p1, char* p2) {
while (*p1 != '\0' && *p2 != '\0') {
if (*p1 != *p2) {
return *p1 - *p2;
}
p1++;
p2++;
}
return *p1 - *p2;
}
```
该函数通过循环遍历两个字符串,比较每个字符是否相同。如果发现不同的字符,就返回它们的ASCII码差值。如果两个字符串都遍历完了,还没有发现不同的字符,则返回它们的长度差值。
阅读全文