20、函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s > t时返回正值,当s < t时返回负值。请填补下面程序。 my_cmp(char *s, char *t) { while (*s == *t) { if (*s == ′\0′) return 0; ++s; ++t; } return ; }
时间: 2024-02-29 18:52:09 浏览: 61
可以将函数补充如下:
```
int my_cmp(char *s, char *t) {
while (*s == *t) {
if (*s == '\0') return 0;
++s; ++t;
}
return *s - *t;
}
```
这里使用指针来比较两个字符串s和t的大小,如果两个字符串的当前字符相同,则继续往后比较,直到出现不同的字符或者其中一个字符串结束。如果两个字符串此时已经相等,则返回0,否则返回第一个不同字符的ASCII码差值。
相关问题
函数my_cmp()的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s > t时返回正值,当s < t时返回负值。请填补下面程序。 my_cmp(char *s, char *t) { while (*s == *t) { if (*s == ′\0′) return 0; ++s; ++t; } return ; }
好的,以下是填空后的完整程序:
```c
int my_cmp(char *s, char *t) {
while (*s == *t) {
if (*s == '\0') {
return 0;
}
++s;
++t;
}
return *s - *t;
}
```
代码解释:
函数my_cmp()接受两个 char* 类型的指针参数 s 和 t,表示需要比较的两个字符串。使用while循环遍历字符串s和t,如果当前字符相同则继续比较下一个字符,如果遇到字符串结束符'\0'则说明两个字符串相等,返回0。否则,返回两个字符串第一个不同字符的ASCII码差值,即 s - t。
注意,返回值为正表示 s > t,返回值为负表示 s < t。在代码中,使用 *s - *t 计算两个字符的ASCII码差值。
5. 以下函数my_cmp( )的功能是比较字符串s和t的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即s>t时返回正值,s<t时返回负值。请将函数补充完整。 int my_cmp(char s[ ],char t[ ]) { int i; while(s[i] == t[i]) { if (_____(1)______) return 0; i++; } return _______(2)_________; }
以下是完整的函数my_cmp():
```C++
int my_cmp(char s[], char t[]) {
int i = 0;
while (s[i] == t[i]) {
if (s[i] == '\0') return 0; // 如果s和t相等,则返回0
i++;
}
return s[i] - t[i]; // 返回s和t的第一个不同字符的ASCII码差值
}
```
解释:
1. 当s和t相等时,s[i]和t[i]都应该为'\0',因此可以判断s[i]是否为'\0'来确定是否相等。
2. 当s和t的第i个字符不同时,返回它们的ASCII码差值。
阅读全文