实验7-3-6 字符串转换成十进制整数

#include<stdio.h>
int main()
{
	int i,k=0,num,cnt=0,flag=0;
	char a[100],b[100];
	while((a[i]=getchar())!='#')
	{
		i++;
	}
	a[i]='\0';
	for(i=0;a[i]!='\0';i++)
	{
		if((a[i]>='0'&&a[i]<='9')||(a[i]>='a'&&a[i]<='f')||(a[i]>'A'&&a[i]<='F'))
		{
			b[k]=a[i];
			k++;
			cnt++;
		}
		if(cnt==0&&a[i]=='-')
		{
			flag=1;
		}
	}
	b[k]='\0';
	num=0;
	for(i=0;b[i]!='\0';i++)
	{
		if(b[i]>='0'&&b[i]<='9')
		{
			num=num*16+b[i]-'0';
		}
		else if(b[i]>='a'&&b[i]<='f')
		{
			num=num*16+b[i]-'a'+10;
		}
		else
		{
			num=num*16+b[i]-'A'+10;
		}
	}
	if(flag==0)
	{
		printf("%d",num);
	}
	else
	{
		printf("%d",num*-1);
	}
	return 0;
}

 


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