c++这个程序怎么弄

img

 给定一个字特串,由小写字母和数字组成,请将其中的数字分割出来求和,小写字母不变
输入
 输入一行由小写字母和数字组成的字符串,长度不超过100
输出
 将字符串分割成多行,字母保持不变,数字求和
样例输入
  8bc123def356805
样例输出
 abe
  ef
 14
 5
#include<stdio.h>
int main()
{
    char str[100] = { '0' };
    int flag = 0;
    int nums = 0;
    int data = 0;
    scanf("%s", &str);
    int n = 0;
    while (str[n] != '\0')
    {
        n++;
    }
    for (int i = 0; i < n; i++)
    {
        if (str[i] >= 'a' && str[i] <= 'z')
        {
            if (flag == 1)
            {
                printf("%d\n", nums);
                flag = 0;
            }
            printf("%c", str[i]);
        }
        if (str[i] >= '1' && str[i] <= '9')
        {
            data = str[i] - 48;
            if (flag == 0 && nums!=0)
            {
                nums = 0;
                printf("\n");
            }
            flag = 1;
        }
        if (flag == 1)
        {
            nums += data;
        }
    }
    if (flag == 1)
    {
        printf("%d\n", nums);
    }
    return 0;
}
#include <iostream>
#include <string>

int main()
{
    std::string string;
    std::cin >> string;
    const char *p = string.c_str();
    while (*p)
    {
        if (std::isdigit(*p))
        {
            int sum = 0;
            while (*p && std::isdigit(*p))
                sum += *p++ - '0';
            std::cout << sum << std::endl;
        }
        else
        {
            while (*p && !std::isdigit(*p))
                std::cout << *p++;
            std::cout << std::endl;
        }
    }
    return 0;
}
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<string>
#include<ctime>
#include<clocale>
using namespace std;
string n;
int s;
int main(){
    cin>>n;
    for(int i=0;i<n.size();i++){
        if(n[i]=='0')s+=0;
        else if(n[i]=='1')s+=1;
        else if(n[i]=='2')s+=2;
        else if(n[i]=='3')s+=3;
        else if(n[i]=='4')s+=4;
        else if(n[i]=='5')s+=5;
        else if(n[i]=='6')s+=6;
        else if(n[i]=='7')s+=7;
        else if(n[i]=='8')s+=8;
        else if(n[i]=='9')s+=9;
        else if(n[i-1]!='0'&&n[i-1]!='1'&&n[i-1]!='2'&&n[i-1]!='3'&&n[i-1]!='4'&&n[i-1]!='5'&&n[i-1]!='6'&&n[i-1]!='7'&&n[i-1]!='8'&&n[i-1]!='9')cout<<n[i];
        else{
            cout<<endl<<s<<endl<<n[i];
            s=0;
        }
    }
    return 0;
}