在c+中添加字符串的所有数字+; 我试图在C++中添加一个字符串的所有数字,但是它不能传递所有的测试用例。我的代码如下 #include <iostream> using namespace std; int main() { string str; long long int count=0; cin>>str; for(int i=0;i<str.length();i++) { count+=(str[i]-'0'); } cout<<count<<endl; return 0; } #包括 使用名称空间std; int main() { 字符串str; 长整型计数=0; cin>>str; for(int i=0;i

在c+中添加字符串的所有数字+; 我试图在C++中添加一个字符串的所有数字,但是它不能传递所有的测试用例。我的代码如下 #include <iostream> using namespace std; int main() { string str; long long int count=0; cin>>str; for(int i=0;i<str.length();i++) { count+=(str[i]-'0'); } cout<<count<<endl; return 0; } #包括 使用名称空间std; int main() { 字符串str; 长整型计数=0; cin>>str; for(int i=0;i,string,sum,digits,digit,String,Sum,Digits,Digit,显示的代码对于仅包含数字的字符串(如“123”)正确工作 可能还需要处理另外两种情况-非数字和非ASCII数字(这对于初学者作业来说不太可能) 处理非数字的一种方法是使用条件运算符(也称为“三值运算符”)将它们转换为零 对于第二种情况,如果您的程序必须支持像“¼”这样的所有字符,则您需要查找支持完整Unicode表的库,或者自己编写特殊情况。请注意,您需要的结果是浮点,因为并非所有数字都代表整数。您可以尝试此方法 #include <iostream> using namespace

显示的代码对于仅包含数字的字符串(如“123”)正确工作

可能还需要处理另外两种情况-非数字和非ASCII数字(这对于初学者作业来说不太可能)

处理非数字的一种方法是使用条件运算符(也称为“三值运算符”)将它们转换为零

对于第二种情况,如果您的程序必须支持像“¼”这样的所有字符,则您需要查找支持完整Unicode表的库,或者自己编写特殊情况。请注意,您需要的结果是
浮点,因为并非所有数字都代表整数。

您可以尝试此方法

#include <iostream>
using namespace std;

int main()
{
    string str;
    long long int count=0;
    cin>>str;
    //ASCII value of digits 0-9 lie between 48 to 57
    for(int i=0;i<str.length();i++)
    {
        if(str[i]>=48 && str[i]<=57)
            count = count + (int)str[i] - 48;
    }
    cout<<count<<endl;
    return 0;
}
#包括
使用名称空间std;
int main()
{
字符串str;
长整型计数=0;
cin>>str;
//数字0-9的ASCII值介于48到57之间

对于(int i=0;i=48&&str[i]您能给出任何它不起作用的示例输入吗?在添加之前检查字符str[i]是否为数字。如果字符串同时包含数字和字母字符,则可能会出现问题。如果(isdigit(str[i]){count+=(str[i]-'0');}
#include <iostream>
using namespace std;

int main()
{
    string str;
    long long int count=0;
    cin>>str;
    //ASCII value of digits 0-9 lie between 48 to 57
    for(int i=0;i<str.length();i++)
    {
        if(str[i]>=48 && str[i]<=57)
            count = count + (int)str[i] - 48;
    }
    cout<<count<<endl;
    return 0;
}