输入内容是一个字符串,输出结果为一个字符串。要求在输入的字符串中识别出多个整数单元,并且对各个整数单元求和运算,最终输出一个字符串,输出的字符串内容是对各个整数单元求和的结果。
两个整数单元之间以空格分隔,每个整数单元可能为正整数,也可能为负整数,负整数的负号在整数的最前面且与整数间不插入任何字符。在输入的字符串中只可能出现数字字符、正负号、小数点和空格。
输入一个字符串,(长度小于100有输入者保证)因输入的字符串都是标准十进制数,可能存在小数部分,在整数识别时需要舍弃小数部分;在运算过程中出现任何错误返回空字符串;654.32 -321
1. #include<iostream>
2. #include<string>
3. #include<vector>
4. #include<tchar.h>
5. using namespace std;
6. char* Reverse(string str,char output[])
7. {
8. if(str.size()>=100) return NULL;
9. string word;
10. int sum = 0;
11. vector<string> svec;
12. string::size_type startpos=0,endpos=0,wordlen = 0;
13.
14. //每次循环处理一个单词
15. while((startpos=str.find_first_not_of(" ",endpos))!= string::npos)
16. {
17. endpos =str.find_first_of(" ",startpos);
18. if(endpos==string::npos)
19. wordlen = str.size() -startpos;
20. else
21. wordlen = endpos-startpos;
22.
23. word.assign(str.begin()+startpos,str.begin()+startpos+wordlen);
24. sum +=atoi(word.c_str());
25.
26. startpos =str.find_first_not_of(" ",endpos);
27. }
28. itoa(sum,output,10);
29. return output;
30. }
31.
32.
33. int main( )
34. {
35. string str;
36. getline(cin,str);
37.
38. char output[100];
39. Reverse(str,output);
40.
41. cout << output << endl;
42. system("pause");
43. return 0;
44. }