刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

数字字符求和
请编写一个程序实现以下功能:从一个字符串中,提取出所有的数字字符即0-9,并作为数求和。
时间限制:1000
内存限制:65536
输入
一行字符串,长度不超过100,字符串中不含空格。
输出
字符串中所有数字字符作为数的和
样例输入

Lsd2f02k3ja3sdf223

样例输出

17

使用微信搜索喵呜刷题,轻松应对考试!

答案:

include<iostream>

include<cstring>

using namespace std;

int main()

{

int len,a[300]= {0},b[300]= {0},t=0,f;

string st,s;

cin>>st;

len=st.size();

for(int i=0; i<len; i++)

a[i]=st[i]-‘0’;

//将 st 一位一位存入数组 a 中 减 0 是字符到数字的隐形转换

st=st+st;//将 st 首尾相接

for(int j=1; j<=len; j++)

{

for(int k=0; k<len; k++)

b[k]=a[k];//将 a 数组存入 b 中

for(int p=len-1; p>=0; p–)

{

b[p]=b[p]*j+t;

t=b[p]/10;

b[p]=b[p]%10;

}//高精度乘法

s="";//将字符串 s 置空

for(int q=0; q<len; q++)

s=s+(char)(‘0’+b[q]);//将 b 数组转换到字符串 s 中

f=st.find(s,0);

if(f==-1)

{ //即 st 中没有 s

cout<<‘0’;

return 0;

}//输入"0"并停止运行

}

cout<<‘1’;

return 0;

}

解析:

【喵呜刷题小喵解析】:这个题目要求编写一个程序,从一个字符串中,提取出所有的数字字符,并求和。首先,我们需要读取输入的字符串。然后,遍历字符串中的每一个字符,如果该字符是数字(即字符的ASCII码在'0'和'9'之间),则将其转换为数字并加到总和中。最后,输出总和。在C++中,字符和整数在内存中是兼容的,因此我们可以直接通过字符减去'0'来得到对应的数字。例如,字符'3'的ASCII码是51,而字符'0'的ASCII码是48,所以字符'3' - '0'的结果是3。因此,我们可以使用以下代码来实现这个功能:```cpp#include#includeusing namespace std;int main() {string st;cin >> st;int sum = 0;for (int i = 0; i < st.size(); i++) {if (st[i] >= '0' && st[i] <= '9') {sum += st[i] - '0';}}cout << sum << endl;return 0;}```这段代码首先定义了一个字符串变量`st`来存储输入的字符串,然后读取输入的字符串。接着,使用一个循环遍历字符串中的每一个字符,如果该字符是数字,则将其转换为数字并加到总和中。最后,输出总和。
创作类型:
原创

本文链接:数字字符求和 请编写一个程序实现以下功能:从一个字符串中,提取出所有的数字字符即0-9,并作为数求和

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share