写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char *p1,char *p2);设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1!=s2,返回它们二者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第二个字母不同,“O”与“A”之差为79-65=14)。如果s1>s2,则输出正值;如果s1<S2,则输出负值。
时间: 2024-02-26 18:57:07 浏览: 61
下面是自己编写的 `strcmp` 函数实现:
```c++
int strcmp(char *p1, char *p2) {
while (*p1 && *p2) {
if (*p1 != *p2) {
return *p1 - *p2;
}
p1++;
p2++;
}
return *p1 - *p2;
}
```
该函数比较两个字符串 s1 和 s2,返回它们二者第一个不同字符的 ASCII 码差值。如果 s1 和 s2 相等,则返回 0;如果 s1 大于 s2,则返回正值;如果 s1 小于 s2,则返回负值。
函数的实现思路是:使用 while 循环逐个比较两个字符串的字符。在循环中,如果字符不相等,则返回它们的 ASCII 码差值;如果字符相等,则继续比较下一个字符。如果其中一个字符串先结束,则认为该字符串小于另一个字符串(因为短字符串的后续字符默认为 '\0',即 ASCII 码为 0)。
例如,当调用 `strcmp("BOY", "BAD")` 时,函数返回值为 14,即字符 'O' 和字符 'A' 的 ASCII 码差值。
相关问题
写一函数,实现两个字符串的比较,即自己写一个strcmp函数,函数原型为int strcmp(char*p1,char*p2)
好的,我可以为您写一个strcmp函数实现两个字符串的比较。以下是函数的代码:
```
int strcmp(char *p1, char *p2) {
while (*p1 == *p2) {
if (*p1 == '\0') {
return 0;
}
p1++;
p2++;
}
return (*p1 - *p2);
}
```
这个函数的功能与系统自带的strcmp函数相同,都是比较两个字符串是否相等。如果字符串相等,返回值为0;如果字符串不相等,返回值为它们第一个不同字符的ASCII码差值。
请注意,这个函数可能不是最优的实现方式,但它可以完成您的要求。如果您有更好的实现方式,欢迎分享给我!
写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char *pl,char *p2);
好的,这个问题我可以回答。下面是一个简单的strcmp函数的实现:
```c
int strcmp(char *p1, char *p2) {
while (*p1 && *p2 && (*p1 == *p2)) {
p1++;
p2++;
}
return (*p1 - *p2);
}
```
这个函数会比较两个字符串,如果它们相等,返回0;如果第一个字符串比第二个字符串小,返回一个负数;如果第一个字符串比第二个字符串大,返回一个正数。