【PTA】字符串转换成十进制整数 (15分) #C语言
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。 输入格式: 输入在一行中给出一个以#结束的非空字符串。 输出格式: 在一行中输出转换后的十进制数。题目保证输出在长整型范围内。 输入样例: +-P-xf4+-1!# 输出样例: -3905 我的解法: #include<stdio.h> //挺麻烦的,但自认为是比较工整的!已发布CSDN #include<string.h> #include<math.h> void Remove_InvalidSympol(char a[],int n){ //去除无效字符 char valid_sympol[]={'-','0','1','2','3','4','5','6','7','8','9','a','A','b','B','c','C','d','D','e','E','f','F'}; int len_right_symbol=strlen(valid_sympol); int cnt=0; char temp[1000]; for(int i=0;i<n;i++){ int isinright=0; for(int j=0;j<len_right_symbol;j++){ if