zzuli oj 1134 字符串转换

Posted Reqaw’s Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zzuli oj 1134 字符串转换相关的知识,希望对你有一定的参考价值。

题目链接:

https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1134

Description

 

输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以2输出。

Input

 

输入一个以回车结束的字符串,长度不超过100,由数字和字母组成。

Output

 

将转换后的整数乘以2输出,测试数据保证结果在int范围内。

Sample Input

sg987aa65t498

Sample Output

197530996
AC代码:
 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<ctype.h>
 4 void str_rev(char s[],int l);
 5 int main()
 6 {
 7     char b[101],a[101];
 8     int l,i,j,c[105],f;
 9     while(scanf("%s",a) != EOF)
10     {
11         l=strlen(a);
12         for(j=0,i=0;i<l;i++)
13         {
14             if(isdigit(a[i]))
15                 b[j++]=a[i];
16         }
17         b[j]=\0;//字符处理的结尾要加结束符号
18         str_rev(b,j);
19         memset(c,0,sizeof(c));
20         for(i=0;i<j;i++)
21         {
22             if(isdigit(b[i]))
23                 c[i]=(b[i]-0) * 2;
24         }
25         for(i=0;i<j;i++)
26         {
27             if(c[i]>9)
28             {
29                 c[i] %= 10;
30                 c[i+1]++;
31             }
32         }
33         for(f=0,i=101;i>=0;i--)
34         {
35             if(c[i]||f==1)
36             {
37                 printf("%d",c[i]);
38                 f=1;
39             }
40         }
41         if(f==0)
42         printf("0");//特殊情况 
43         printf("\n");
44     }
45     return 0;
46 }
47 void str_rev(char s[],int l)//更换长度 
48 {
49     int i;
50     char t;
51     for(i=0;i<=(l-1)/2;i++)
52     {
53         t=s[i];
54         s[i]=s[l-i-1];
55         s[l-i-1]=t;
56     }
57     s[l]=\0;
58 } 

 

 

以上是关于zzuli oj 1134 字符串转换的主要内容,如果未能解决你的问题,请参考以下文章

zzuli OJ 1128: 课程平均分

zzuli OJ 1129: 第几天

zzuli oj 1108 打印数字图形

zzuli oj 1135 算菜价

zzuli oj 1111 多个整数的逆序输出

zzuli oj 1117 查找数组元素