C++这个程序怎么弄

输入一列表,请你依次输出列表中的各个元素
输入
输入一行,为空格隔开的列表
输出
输出列表个数行,每行依次列表元素和其长度,并用空格隔开
样例输入
JavaPythonVB
样例输出
Java 4
Python 8
VB 2


#include<stdio.h>

int main()
{
    char str[1024];
    gets_s(str);
    int num = 0;
    int i = 0;
    while (str[i]!='\0')
    {
        if (str[i]!=' ')
        {
            printf("%c", str[i]);
            num++;
        }
        else
        {
            printf(" %d\n", num);
            num = 0;
        }
        i++;
    }
    printf(" %d", num);
    return 0;
}

#include<string>
#include<iostream>
#include<vector>
using namespace std;
void find(string list)
{
    vector<string> str;
    size_t count{};
    size_t i{1};
    for(i;i<list.length();i++)
    {
     if(static_cast<int>(list[i])>90)

         continue;
      str.push_back(list.substr(count,i-count));
      count=i;
    }
    str.push_back(list.substr(count,list.length()-count));
    for(auto & finds:str)
        cout<<finds<<" : "<<finds.length()<<endl;
}
int main()
{
    string name{"JavaPythonVb"};
    find(name);
return 0;
}