字符串转换成十进制、字符转换(去0)

字符串转换成十进制

#include<stdio.h>
#include<string.h>
#include<math.h>
int main()
{
	int jihao=0,flag=0,l=0,sum=0,b=0,shu=9;
	char s[100],r[100],c='A';
	while ((s[l] = getchar()) != '#') l++;
	for (int i = 0; i < l; i++)
	{
		if (s[i] <= 'f'&&s[i] >= 'a')
			s[i] -= 32;
		//printf("%c", s[i]);
	}
	for (int i = 0; i < l; i++)
	{
		if ((s[i] <= 'F'&&s[i] >= 'A') || (s[i] >= '0'&&s[i] <= '9'))
		{
			jihao = i;
			break;
		}
	}
	for (int i = 0; i < jihao; i++)
	{
		if (s[i] == '-')
		{
			flag = 1;
		}
	}
	for (int i = jihao; i<l; i++)
	{
		if ((s[i] <= 'F'&&s[i] >= 'A') || (s[i] >= '0'&&s[i] <= '9'))
		{
			r[b] = s[i];
			b++;
		}
	}
	//for (int i = 0; i <= b; i++) printf("%c", r[i]);
	for (int i = b; i >= 0; i--)
	{
		if (r[i] >= '0'&&r[i] <= '9') 
			sum = sum + r[i] * pow(16, b-i);
		if (r[i] <= 'F'&&r[i] >= 'A')
		{
			shu = 10;
			while (c != r[i])
			{
				shu++;
				c++;
			}
			sum = sum + shu * pow(16, b - i);
		}
	}
	printf("%d\n", sum);
	return 0;
}

字符转换

#include<stdio.h>
#include<string.h>
int main()
{
	int len, b = 0,w, j = 0;
	char s[100], r[100];
	gets(s);
	len = strlen(s);
	for (int i = 0; i < len; i++)
	{
		if (s[i] >= '0'&&s[i] <= '9')
		{
			r[b] = s[i];
			b++;
		}
	}
	for (int i = 0; i < b; i++)
	{
		w = 0;
		if (r[i] != '0')
		{
			w=i;
			break;
		}
	}
	for (int l = w; l < b; l++)
	{
		printf("%d", r[l] - '0');
	}
	return 0;
}


猜你喜欢

转载自blog.csdn.net/weixin_44017102/article/details/87607184