#include <iostream>
#include <string>
int SumStr(const std::string& str);
int main()
{
std::string str;
std::cin >> str;
std::cout << SumStr(str) << std::endl;
system("pause");
return 0;
}
int SumStr(const std::string& str)
{
if (str.length() == 0)
{
return 0;
}
int res = 0, num = 0; //res记录结果 num记录数字
bool posi = true;
for (int i = 0; i < str.length(); ++i)
{
if (str[i] - '0' < 0 || str[i] - '0' > 9) //'0' >= str[i] || str[i]>= 9
{
res += num;
num = 0;
if (str[i] == '-')
{
if (i > 0 && str[i - 1] == '-')
posi = !posi;
else
posi = false;
}
else
posi = true; //str[i] != '-'
}
else
num = num * 10 + (posi ? str[i] - '0' : -(str[i] - '0')); //str[i]属于char型的0-9;
}
res += num;
return res;
}C++字符串数字子串求和
最新推荐文章于 2024-11-18 08:40:39 发布

264

被折叠的 条评论
为什么被折叠?



