- 论坛徽章:
- 0
|
这个题是把一个字串中所有的连续数字字符当成整数,求出其中的整数和,看看有啥问题
测试数据是第一行指出测试的行数,下面的每一行都是一个字符串,求出每行正整数的和,并在单独一行中输出- [size=4]#include <iostream>
- #include <cstdlib>
- using namespace std;
-
- int main()
- {
- const int MAXN = 100;//每行中字符串的最大个数
- int setn; //测试数据的组数
- char str[MAXN] = {'\0'};//存放读入的一行字符串
-
- cin >> setn;
- cin.getline(str, 10);//处理第一行中的换行符
- while (setn-- > 0)
- {
- cin.getline(str, MAXN);
- int i = 0;
- int sum = 0;
- while (*(str + i) != '\0')
- {
- char *p = str + i;
- if (*p > '0' && *p <= '9')
- {
- int j = 1;
- int tmp = *p - '0';
- while ((*(p + j) >= '0') && (*(p + j) <= '9'))
- {
- tmp = tmp * 10 + (*(p + j) - '0');
- j++;
- }
-
- sum += tmp;
- i += j;
- }
- else
- {
- ++i;
- }
- }
-
- cout << sum << endl;
- }
-
- system("pause");
- return 0;
- }[/size]
复制代码 |
|