c 语言 字符串转换

  • Post author:
  • Post category:其他


/*****

题目描述

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

输入

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

输出

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

样例输入 Copy

sg987aa65t498

样例输出 Copy

197530996

*****/


!!!!这里需要注意的一点是 字符串中保存的是char类型的,我们要转换成int型需要在对应的ASCII码中减去48,因为在表中 0 对应的是48

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
    char a[1000];
    int i,num,l,m,t;
    gets(a);
    l = strlen(a);
    num = 0;
    m = 1;
    for (i = l-1; i >= 0; i--)
    {
        if(a[i] >= '0' && a[i] <= '9')
        {
            t = (int)a[i] - 48;
            num += t * m;
            m *= 10;
        }

    }
    printf("%d",num*2);
    return 0;
}



版权声明:本文为qq_39345244原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。