c 语言 字符串转换

/*****
题目描述

输入一个以回车结束的字符串,它由数字和字母组成,请过滤掉所有非数字字符,然后将数字字符串转换成十进制整数后乘以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;
}

发布了84 篇原创文章 · 获赞 0 · 访问量 1821

猜你喜欢

转载自blog.csdn.net/qq_39345244/article/details/104875962