一道现场编程题:输入一组数字或字符串,中间用空格间隔,实现数字和字符串的加法?解决方案

一道现场编程题:输入一组数字或字符串,中间用空格间隔,实现数字和字符串的加法????
面试一家公司的编程题求各位大大指教:
计算 a + b 
输入
输入一组数字或字符串,中间用空格间隔,实现数字和字符串的加法。
输出
数字输入为各个数字之和;字符串为各个串的连接串。
要实现的例子:
1)、输入:
1 5 7
  输出:
13(相当于1+5+7)
2)、输入:
1 5 A
输出
15A

------解决方案--------------------
C/C++ code

#include<sstream>
#include<string>
#include<iostream>
using namespace std;
int main()
{
    string line;
    getline(cin,line);
    if(line.find_first_not_of("-0123456789 \t")!=string::npos)
    {
        string ans="";
        string tmp;
        stringstream ss(line);
        while(ss>>tmp)
        {
            ans+=tmp;
        }
        cout<<ans<<endl;
    }
    else
    {
        int ans=0;
        int tmp;
        stringstream ss(line);
        while(ss>>tmp)
        {
            ans+=tmp;
        }
        cout<<ans<<endl;
    }
    return 0;
}