【华为OJ】字符串解析运用-将字符串分解为多个整数,求各整数之和


输入内容是一个字符串,输出结果为一个字符串。要求在输入的字符串中识别出多个整数单元,并且对各个整数单元求和运算,最终输出一个字符串,输出的字符串内容是对各个整数单元求和的结果。

两个整数单元之间以空格分隔,每个整数单元可能为正整数,也可能为负整数,负整数的负号在整数的最前面且与整数间不插入任何字符。在输入的字符串中只可能出现数字字符、正负号、小数点和空格。

输入一个字符串,(长度小于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.	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值