zoukankan      html  css  js  c++  java
  • 读《C程序设计语言》笔记6

    《C程序设计语言》习题2-3

    编写函数str_hextoint(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9,a~f以及A~F。

    #include<stdio.h>
    #define YES 1
    #define NO 0
    int str_hextoint(char s[])
    {
    	int hexdigit, i, inhex, n;
    	i=0;
    	if(s[i]=='0')
    	{
    		++i;
    		if(s[i]=='x' || s[i]=='X')
    			++i;
    	}
    	n=0;
    	inhex=YES;
    	for(; inhex==YES; ++i)
    	{
    		if(s[i]>='0' && s[i]<='9')
    			hexdigit=s[i]-'0';
    		else if(s[i]>='a' && s[i]<='f')
    			hexdigit=s[i]-'a'+10;
    		else if(s[i]>='A' && s[i]<='F')
    			hexdigit=s[i]-'A'+10;
    		else
    			inhex=NO;
    		if(inhex==YES)
    			n=16*n+hexdigit;
    	}
    	return n;
    }
    
    int main()
    {
    	char s[]={"0x2c"};
    	int number;
    	number=str_hextoint(s);
    	printf("0x2c转换为整数型十进制数为:%d\n",number);
    	system("pause");
    	return 0;
    }
    

    执行结果如下:

    其实这个程序与我之前写的一个字符串转换为整型值是一样的解法的,只是这个是十六进制的,字符串处理起来稍微复杂了些。还是对字符数组的操作。

    附之前字符串转换为整型值连接:http://www.cnblogs.com/wangzhiyu811/archive/2011/07/12/2104661.html

  • 相关阅读:
    钟国晨160809323(作业5)
    12
    11
    第九次
    8作业
    第七次作业
    6
    林昊5
    计算机网络原理与应用笔记 3/29
    计算机网络原理与应用笔记 3/22
  • 原文地址:https://www.cnblogs.com/wangzhiyu811/p/2104697.html
Copyright © 2011-2022 走看看