用c++写一个比较两个数字字符串大小的函数
时间: 2023-06-20 14:04:02 浏览: 326
可以使用字符串比较函数strcmp()进行比较,只需要将两个字符串转换成数字后再进行比较即可。代码如下:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int compare(string num1, string num2) {
// 转换为数字
int n1 = stoi(num1);
int n2 = stoi(num2);
// 比较大小
if (n1 > n2) {
return 1;
} else if (n1 < n2) {
return -1;
} else {
return 0;
}
}
int main() {
string num1 = "123";
string num2 = "456";
cout << compare(num1, num2) << endl; // 输出-1
return 0;
}
```
注意,如果数字字符串过大,可能会超出int类型的范围,建议使用更高精度的数据类型进行转换和比较。
相关问题
C++实现一个比较两个字符串的大小的函数
可以使用C++标准库中的`std::string`类,其中已经定义了比较运算符`<`、`>`、`<=`、`>=`、`==`、`!=`,可以直接使用。例如:
```c++
#include <string>
#include <iostream>
bool compareStrings(const std::string& str1, const std::string& str2) {
return str1 < str2;
}
int main() {
std::string str1 = "hello";
std::string str2 = "world";
std::cout << compareStrings(str1, str2) << std::endl; // 输出1,即str1 < str2
return 0;
}
```
上述代码中,`compareStrings`函数使用`<`运算符比较两个字符串的大小,如果第一个字符串小于第二个字符串,则返回`true`,否则返回`false`。在`main`函数中,我们定义了两个字符串`str1`和`str2`,并将它们作为参数传递给`compareStrings`函数进行比较。最后输出比较结果。
写一个两参数是字符串的C++数字相加的函数
好的,以下是一个简单的两个字符串数字相加的函数示例:
```c++
#include <string>
using namespace std;
string addStrings(string num1, string num2) {
int carry = 0;
string result = "";
int i = num1.size() - 1, j = num2.size() - 1;
while (i >= 0 || j >= 0 || carry > 0) {
int sum = carry;
if (i >= 0) {
sum += num1[i] - '0';
i--;
}
if (j >= 0) {
sum += num2[j] - '0';
j--;
}
carry = sum / 10;
sum %= 10;
result = to_string(sum) + result;
}
return result;
}
```
这个函数接收两个字符串参数 `num1` 和 `num2`,并返回它们的和。在函数中,我们使用一个 `carry` 变量来记录进位,用 `i` 和 `j` 两个指针分别遍历两个字符串,将对应位上的数字相加,再加上 `carry`,并将和对 10 取模得到本位的数字,将和除 10 得到的进位记录到 `carry` 中,最后将本位数字转为字符串,插入到结果字符串的开头。最后返回结果字符串即可。
需要注意的是,这个函数只适用于非负整数的加法,如果需要处理负数或浮点数的加法,需要做相应的修改。