码迷,mamicode.com
首页 > 其他好文 > 详细

zzuli oj 1134 字符串转换

时间:2017-08-15 23:34:13      阅读:1307      评论:0      收藏:0      [点我收藏+]

标签:ref   sizeof   https   输出   dig   put   ++   http   man   

题目链接:

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 字符串转换

标签:ref   sizeof   https   输出   dig   put   ++   http   man   

原文地址:http://www.cnblogs.com/wenzhixin/p/7368314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!