1016 部分A+B (15 分)

题目:


思路:

A和B取值范围在1010比int要大,采用字符串类型,用c++中string可以不用考虑其字符串长度,内部会自行调整。用字符串类型进行存储,后续对其类型进行转换,将得到的数据从字符串类型转换为整型,在c++中sstream函数里的stringstream类型有这功能,对此加以应用。pa和pb要设为long int类型否则用int数据会溢出。

代码:

 1 #include <cstdio>
 2 #include <iostream>
 3 #include <sstream>
 4 #include <string>
 5 using namespace std;
 6 
 7 int main()
 8 {
 9     string s1, s2;
10     string a = "";
11     string b = "";
12     char Da, Db;
13     cin >> s1 >> Da >> s2 >> Db;
14     for(int i = 0; i < s1.length(); i++)
15     {
16         if(s1.at(i) == Da)     //s1.at()类似指针 
17         {
18             a = a + s1.at(i); 
19         }
20     }
21     for(int i = 0; i < s2.length(); i++)
22     {
23         if(s2.at(i) == Db)
24         {
25             b = b + s2.at(i);
26         }
27     }
28     long int pa = 0, pb = 0;     
29     stringstream ss1, ss2;        //包含在sstream函数中,可以将字符串类型转换为整型 
30     ss1 << a;    //向ss1流中传入a 
31     ss1 >> pa;    //向pa中写入流入ss1后转换成int类型的值 
32     ss2 << b;    //向ss2流中传入b 
33     ss2 >> pb;    //向pb中写入流入ss2后转换成int类型的值
34     cout << pa + pb << endl;
35     
36     return 0;
37  } 

 总结:

要对c++函数库应用有所了解,sstream函数具有字符串类型转化为整型的功能。

猜你喜欢

转载自www.cnblogs.com/Anber82/p/11128185.html