删除字符串中的几个第一个零
Delete few first zeros in a string
这是我一直在做的事情:
输入 2 个正整数(最多 100 位)。
比较两个整数。
注意:2 个整数可以包含前导零。
(这意味着你必须先删除零)
因为 100 位数字太长,我使用 string
数据类型。
但在我下面的程序中,它只是 returns '='
我调试了它并发现 for
循环不工作。
我的代码:
#include <iostream>
#include <string>
using namespace std; // I know this is bad but it's just a small program
char compareBigInterger(string str1,string str2)
{
while (str1[0] != 0) str1.erase(0, 1);
while (str2[0] != 0) str2.erase(0, 1);
char answerHold {'='};
if (str1.size() > str2.size())
{
answerHold = '>';
}
else if (str1.size() < str2.size())
{
answerHold = '<';
}
else
{
for (int i = 0; i < str1.size(); i++)
{
if (int(str1[i] - 48) < int(str2[i] - 48)) // 48 = '1' - 1
{
answerHold = '<';
break;
}
else if (int(str1[i] - 48) > int(str2[i] - 48))
{
answerHold = '>';
break;
}
}
}
return answerHold;
}
int main()
{
string str1;
string str2;
cin >> str1 >> str2;
cout << char{compareBigInterger(str1, str2)};
}
线条
while (str1[0] != 0) str1.erase(0, 1);
while (str2[0] != 0) str2.erase(0, 1);
将删除字符串中的所有字符,因为值0
用作字符串的结束标记。
要与字符零进行比较,您应该使用字符文字 '0'
(用 ''
包围的字符)。
此外,循环应该是“字符为零时循环”以删除零。
while (str1[0] == '0') str1.erase(0, 1);
while (str2[0] == '0') str2.erase(0, 1);
这是我一直在做的事情:
输入 2 个正整数(最多 100 位)。
比较两个整数。
注意:2 个整数可以包含前导零。 (这意味着你必须先删除零)
因为 100 位数字太长,我使用 string
数据类型。
但在我下面的程序中,它只是 returns '='
我调试了它并发现 for
循环不工作。
我的代码:
#include <iostream>
#include <string>
using namespace std; // I know this is bad but it's just a small program
char compareBigInterger(string str1,string str2)
{
while (str1[0] != 0) str1.erase(0, 1);
while (str2[0] != 0) str2.erase(0, 1);
char answerHold {'='};
if (str1.size() > str2.size())
{
answerHold = '>';
}
else if (str1.size() < str2.size())
{
answerHold = '<';
}
else
{
for (int i = 0; i < str1.size(); i++)
{
if (int(str1[i] - 48) < int(str2[i] - 48)) // 48 = '1' - 1
{
answerHold = '<';
break;
}
else if (int(str1[i] - 48) > int(str2[i] - 48))
{
answerHold = '>';
break;
}
}
}
return answerHold;
}
int main()
{
string str1;
string str2;
cin >> str1 >> str2;
cout << char{compareBigInterger(str1, str2)};
}
线条
while (str1[0] != 0) str1.erase(0, 1);
while (str2[0] != 0) str2.erase(0, 1);
将删除字符串中的所有字符,因为值0
用作字符串的结束标记。
要与字符零进行比较,您应该使用字符文字 '0'
(用 ''
包围的字符)。
此外,循环应该是“字符为零时循环”以删除零。
while (str1[0] == '0') str1.erase(0, 1);
while (str2[0] == '0') str2.erase(0, 1);