试编写一个程序将两个字符串s1和s2进行比较,若s1>s2则输出正数,不能有strcmp函数
时间: 2024-12-01 08:30:09 浏览: 140
当然可以,我们可以使用迭代器遍历字符串并逐个字符比较,如果找到第一个不匹配的字符,则根据ASCII码值判断大小。这里是一个简单的C++程序实现:
```cpp
#include <iostream>
#include <string>
int compareStrings(const std::string& s1, const std::string& s2) {
int result = 0;
for (size_t i = 0; i < s1.length() && i < s2.length(); ++i) {
if (s1[i] > s2[i]) {
result = 1; // 如果当前s1更大
} else if (s1[i] < s2[i]) {
result = -1; // 如果当前s2更大
}
}
// 如果两个字符串长度不同,剩余部分按长度较短者为准
if (s1.length() != s2.length()) {
if (s1.length() < s2.length()) {
result = -1;
} else {
result = 1;
}
}
return result;
}
int main() {
std::string s1, s2;
std::cout << "Enter the first string: ";
std::cin >> s1;
std::cout << "Enter the second string: ";
std::cin >> s2;
int comparison = compareStrings(s1, s2);
if (comparison > 0) {
std::cout << "s1 is greater than s2.\n";
} else if (comparison < 0) {
std::cout << "s2 is greater than s1.\n";
} else {
std::cout << "Both strings are equal.\n";
}
return 0;
}
```
在这个程序中,`compareStrings`函数比较了两个字符串中的每个字符,如果有不同的字符出现,就返回相应的大小关系(1表示s1更大,-1表示s2更大)。如果字符串长度不同,较长的那个会被认为较大。
阅读全文
相关推荐


















