题目要求:编写一个程序,比较两个字符串s1和s2。若s1>s2,输出一个正数;若s1=s2,输出0;若s1<s2,输出一个负数。不要用strcpy函数
时间: 2023-12-29 08:47:16 浏览: 149
好的,您的问题是关于字符串比较的。下面是我的回答:
在不使用strcpy函数的情况下,我们可以使用一个循环来逐个比较两个字符串中的每个字符。假设我们要比较的两个字符串是s1和s2,先设一个值diff为0,表示两个字符串相等。
然后,我们可以按照以下步骤比较两个字符串:
1. 从第一个字符开始,逐个比较s1和s2中相同位置的字符。
2. 如果发现其中一个字符的ASCII码值大于另一个,则将diff赋值为正数(该字符在s1中的ASCII码值减去s2中的),并跳出循环。
3. 如果两个字符相等,则继续比较下一个字符。
4. 如果比较完成后仍然没有发现不同,那么两个字符串就是相等的。
根据上述步骤我们可以编写出如下的C代码:
```c
int compare(char* s1, char* s2) {
int diff = 0;
while (*s1 != '\0' && *s2 != '\0') {
if (*s1 > *s2) {
diff = *s1 - *s2;
break;
} else if (*s1 < *s2) {
diff = *s1 - *s2;
break;
}
s1++;
s2++;
}
if (diff == 0 && *s1 != '\0') {
diff = *s1;
} else if (diff == 0 && *s2 != '\0') {
diff = -*s2;
}
return diff;
}
```
这个函数接收两个指向字符串的指针作为参数,返回一个整数。如果返回的整数为0,则表示两个字符串相等;如果为正数,则表示s1>s2;如果为负数,则表示s1<s2。
希望这个回答能对您有所帮助,如果您还有其他问题,请继续问。
阅读全文