1134: 字符串转换
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2810 Solved: 1520
Submit Status Web Board
Description
输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。
Input
输入一个以回车结束的字符串,长度不超过100,由数字和字母组成。
Output
将转换后的整数乘以2输出,测试数据保证结果在int范围内。
Sample Input
Sample Output
HINT
Source
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char a[110],b[110];
int lena,i,sum[200],k=0,g=199;
memset(sum,0,sizeof(sum));
//初始化函数
//void *memset(void *s, int ch, size_t n);
//函数解释:将s中当前位置后面的n个字节
//(typedef unsigned int size_t )用 ch 替换并返回 s
cin>>a;
lena=strlen(a);
for(i=0;i<lena;i++)
{
if(a[i]>='0'&&a[i]<='9')
{
b[k++]=a[i];
}
}
b[k]='\0';
for(i=k-1;i>=0;i--)
{
sum[g]=sum[g]+(b[i]-'0')*2;
g--;
}
for(i=199;i>=1;i--)
{
if(sum[i]>=10)
{
sum[i-1]=sum[i-1]+sum[i]/10;
sum[i]=sum[i]%10;
}
}
int start=0;
while(!sum[start] && start<199)
{
start++;
}
for(i=start;i<=199;i++)
cout<<sum[i];
cout<<endl;
return 0;
}