描述 编写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为strcmp(char *p1,char *p2),设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;(s1,s2长度相等并且不超过100)若s1!=s2,返回它们两者第一个不同字符的ASCII码差值(如“BOY”与“BAD”,第2个字母不同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值,反之输出负值。(本题要求用指针来做) 输入 第一行为N,表示接下来有N组测试数据。接下来的N行表示N组测试数据,每组测试数据包含两个字符串,中间用空格隔开,并且保证每个字符串中的字符都是小写字母。 输出 输出两个字符串比较的结果。
时间: 2024-03-12 10:47:45 浏览: 18
下面是一个用指针实现的strcmp函数的示例代码,你可以参考一下:
```c++
#include <iostream>
using namespace std;
int strcmp(char *p1, char *p2) {
while (*p1 && *p2 && *p1 == *p2) {
p1++;
p2++;
}
return *p1 - *p2;
}
int main() {
int n;
cin >> n;
while (n--) {
char s1[101], s2[101];
cin >> s1 >> s2;
cout << strcmp(s1, s2) << endl;
}
return 0;
}
```
在这个代码中,我们首先定义了一个strcmp函数,参数是两个指向字符串的指针,返回值是这两个字符串的比较结果。在函数中,我们使用了指针来逐个比较字符串中的字符,如果两个字符相同,就继续比较下一个字符,直到比较完整个字符串或者遇到不同的字符为止。最后,我们返回两个指针指向的字符的ASCII码差值,这个值可能是正数、负数或者0,分别对应于s1>s2、s1<s2和s1=s2的情况。
在主函数中,我们首先读入测试数据的数量n,然后循环n次,每次读入两个字符串s1和s2,然后调用strcmp函数来比较它们。最后,我们输出比较结果,并且记得换行。
相关问题
写一函数,实现两个字符串的比较,即自己写一个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;如果第一个字符串比第二个字符串小,返回一个负数;如果第一个字符串比第二个字符串大,返回一个正数。